{"id":"c7a7a75c2df207db37ad6f6c1ae679c0","_format":"hh-sol-build-info-1","solcVersion":"0.8.28","solcLongVersion":"0.8.28+commit.7893614a","input":{"language":"Solidity","sources":{"@ensdomains/ens-contracts/contracts/registry/ENS.sol":{"content":"//SPDX-License-Identifier: MIT\npragma solidity >=0.8.4;\n\ninterface ENS {\n    // Logged when the owner of a node assigns a new owner to a subnode.\n    event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n    // Logged when the owner of a node transfers ownership to a new account.\n    event Transfer(bytes32 indexed node, address owner);\n\n    // Logged when the resolver for a node changes.\n    event NewResolver(bytes32 indexed node, address resolver);\n\n    // Logged when the TTL of a node changes\n    event NewTTL(bytes32 indexed node, uint64 ttl);\n\n    // Logged when an operator is added or removed.\n    event ApprovalForAll(\n        address indexed owner,\n        address indexed operator,\n        bool approved\n    );\n\n    function setRecord(\n        bytes32 node,\n        address owner,\n        address resolver,\n        uint64 ttl\n    ) external;\n\n    function setSubnodeRecord(\n        bytes32 node,\n        bytes32 label,\n        address owner,\n        address resolver,\n        uint64 ttl\n    ) external;\n\n    function setSubnodeOwner(\n        bytes32 node,\n        bytes32 label,\n        address owner\n    ) external returns (bytes32);\n\n    function setResolver(bytes32 node, address resolver) external;\n\n    function setOwner(bytes32 node, address owner) external;\n\n    function setTTL(bytes32 node, uint64 ttl) external;\n\n    function setApprovalForAll(address operator, bool approved) external;\n\n    function owner(bytes32 node) external view returns (address);\n\n    function resolver(bytes32 node) external view returns (address);\n\n    function ttl(bytes32 node) external view returns (uint64);\n\n    function recordExists(bytes32 node) external view returns (bool);\n\n    function isApprovedForAll(\n        address owner,\n        address operator\n    ) external view returns (bool);\n}\n"},"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol":{"content":"pragma solidity >=0.8.4;\n\nimport \"./ENS.sol\";\n\n/**\n * The ENS registry contract.\n */\ncontract ENSRegistry is ENS {\n    struct Record {\n        address owner;\n        address resolver;\n        uint64 ttl;\n    }\n\n    mapping(bytes32 => Record) records;\n    mapping(address => mapping(address => bool)) operators;\n\n    // Permits modifications only by the owner of the specified node.\n    modifier authorised(bytes32 node) {\n        address owner = records[node].owner;\n        require(owner == msg.sender || operators[owner][msg.sender]);\n        _;\n    }\n\n    /**\n     * @dev Constructs a new ENS registry.\n     */\n    constructor() public {\n        records[0x0].owner = msg.sender;\n    }\n\n    /**\n     * @dev Sets the record for a node.\n     * @param node The node to update.\n     * @param owner The address of the new owner.\n     * @param resolver The address of the resolver.\n     * @param ttl The TTL in seconds.\n     */\n    function setRecord(\n        bytes32 node,\n        address owner,\n        address resolver,\n        uint64 ttl\n    ) external virtual override {\n        setOwner(node, owner);\n        _setResolverAndTTL(node, resolver, ttl);\n    }\n\n    /**\n     * @dev Sets the record for a subnode.\n     * @param node The parent node.\n     * @param label The hash of the label specifying the subnode.\n     * @param owner The address of the new owner.\n     * @param resolver The address of the resolver.\n     * @param ttl The TTL in seconds.\n     */\n    function setSubnodeRecord(\n        bytes32 node,\n        bytes32 label,\n        address owner,\n        address resolver,\n        uint64 ttl\n    ) external virtual override {\n        bytes32 subnode = setSubnodeOwner(node, label, owner);\n        _setResolverAndTTL(subnode, resolver, ttl);\n    }\n\n    /**\n     * @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node.\n     * @param node The node to transfer ownership of.\n     * @param owner The address of the new owner.\n     */\n    function setOwner(\n        bytes32 node,\n        address owner\n    ) public virtual override authorised(node) {\n        _setOwner(node, owner);\n        emit Transfer(node, owner);\n    }\n\n    /**\n     * @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\n     * @param node The parent node.\n     * @param label The hash of the label specifying the subnode.\n     * @param owner The address of the new owner.\n     */\n    function setSubnodeOwner(\n        bytes32 node,\n        bytes32 label,\n        address owner\n    ) public virtual override authorised(node) returns (bytes32) {\n        bytes32 subnode = keccak256(abi.encodePacked(node, label));\n        _setOwner(subnode, owner);\n        emit NewOwner(node, label, owner);\n        return subnode;\n    }\n\n    /**\n     * @dev Sets the resolver address for the specified node.\n     * @param node The node to update.\n     * @param resolver The address of the resolver.\n     */\n    function setResolver(\n        bytes32 node,\n        address resolver\n    ) public virtual override authorised(node) {\n        emit NewResolver(node, resolver);\n        records[node].resolver = resolver;\n    }\n\n    /**\n     * @dev Sets the TTL for the specified node.\n     * @param node The node to update.\n     * @param ttl The TTL in seconds.\n     */\n    function setTTL(\n        bytes32 node,\n        uint64 ttl\n    ) public virtual override authorised(node) {\n        emit NewTTL(node, ttl);\n        records[node].ttl = ttl;\n    }\n\n    /**\n     * @dev Enable or disable approval for a third party (\"operator\") to manage\n     *  all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\n     * @param operator Address to add to the set of authorized operators.\n     * @param approved True if the operator is approved, false to revoke approval.\n     */\n    function setApprovalForAll(\n        address operator,\n        bool approved\n    ) external virtual override {\n        operators[msg.sender][operator] = approved;\n        emit ApprovalForAll(msg.sender, operator, approved);\n    }\n\n    /**\n     * @dev Returns the address that owns the specified node.\n     * @param node The specified node.\n     * @return address of the owner.\n     */\n    function owner(\n        bytes32 node\n    ) public view virtual override returns (address) {\n        address addr = records[node].owner;\n        if (addr == address(this)) {\n            return address(0x0);\n        }\n\n        return addr;\n    }\n\n    /**\n     * @dev Returns the address of the resolver for the specified node.\n     * @param node The specified node.\n     * @return address of the resolver.\n     */\n    function resolver(\n        bytes32 node\n    ) public view virtual override returns (address) {\n        return records[node].resolver;\n    }\n\n    /**\n     * @dev Returns the TTL of a node, and any records associated with it.\n     * @param node The specified node.\n     * @return ttl of the node.\n     */\n    function ttl(bytes32 node) public view virtual override returns (uint64) {\n        return records[node].ttl;\n    }\n\n    /**\n     * @dev Returns whether a record has been imported to the registry.\n     * @param node The specified node.\n     * @return Bool if record exists\n     */\n    function recordExists(\n        bytes32 node\n    ) public view virtual override returns (bool) {\n        return records[node].owner != address(0x0);\n    }\n\n    /**\n     * @dev Query if an address is an authorized operator for another address.\n     * @param owner The address that owns the records.\n     * @param operator The address that acts on behalf of the owner.\n     * @return True if `operator` is an approved operator for `owner`, false otherwise.\n     */\n    function isApprovedForAll(\n        address owner,\n        address operator\n    ) external view virtual override returns (bool) {\n        return operators[owner][operator];\n    }\n\n    function _setOwner(bytes32 node, address owner) internal virtual {\n        records[node].owner = owner;\n    }\n\n    function _setResolverAndTTL(\n        bytes32 node,\n        address resolver,\n        uint64 ttl\n    ) internal {\n        if (resolver != records[node].resolver) {\n            records[node].resolver = resolver;\n            emit NewResolver(node, resolver);\n        }\n\n        if (ttl != records[node].ttl) {\n            records[node].ttl = ttl;\n            emit NewTTL(node, ttl);\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.20;\n\nimport {OwnableUpgradeable} from \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\n *\n * The initial owner is specified at deployment time in the constructor for `Ownable`. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n    /// @custom:storage-location erc7201:openzeppelin.storage.Ownable2Step\n    struct Ownable2StepStorage {\n        address _pendingOwner;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable2Step\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant Ownable2StepStorageLocation = 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00;\n\n    function _getOwnable2StepStorage() private pure returns (Ownable2StepStorage storage $) {\n        assembly {\n            $.slot := Ownable2StepStorageLocation\n        }\n    }\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    function __Ownable2Step_init() internal onlyInitializing {\n    }\n\n    function __Ownable2Step_init_unchained() internal onlyInitializing {\n    }\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n        return $._pendingOwner;\n    }\n\n    /**\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n     * Can only be called by the current owner.\n     *\n     * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n        $._pendingOwner = newOwner;\n        emit OwnershipTransferStarted(owner(), newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual override {\n        Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n        delete $._pendingOwner;\n        super._transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev The new owner accepts the ownership transfer.\n     */\n    function acceptOwnership() public virtual {\n        address sender = _msgSender();\n        if (pendingOwner() != sender) {\n            revert OwnableUnauthorizedAccount(sender);\n        }\n        _transferOwnership(sender);\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.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 {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.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 OwnableUpgradeable is Initializable, ContextUpgradeable {\n    /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n    struct OwnableStorage {\n        address _owner;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n    function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n        assembly {\n            $.slot := OwnableStorageLocation\n        }\n    }\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    function __Ownable_init(address initialOwner) internal onlyInitializing {\n        __Ownable_init_unchained(initialOwner);\n    }\n\n    function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\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        OwnableStorage storage $ = _getOwnableStorage();\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        OwnableStorage storage $ = _getOwnableStorage();\n        address oldOwner = $._owner;\n        $._owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n *     function initialize() initializer public {\n *         __ERC20_init(\"MyToken\", \"MTK\");\n *     }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n *     function initializeV2() reinitializer(2) public {\n *         __ERC20Permit_init(\"MyToken\");\n *     }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n *     _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n    /**\n     * @dev Storage of the initializable contract.\n     *\n     * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n     * when using with upgradeable contracts.\n     *\n     * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n     */\n    struct InitializableStorage {\n        /**\n         * @dev Indicates that the contract has been initialized.\n         */\n        uint64 _initialized;\n        /**\n         * @dev Indicates that the contract is in the process of being initialized.\n         */\n        bool _initializing;\n    }\n\n    // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n    bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n    /**\n     * @dev The contract is already initialized.\n     */\n    error InvalidInitialization();\n\n    /**\n     * @dev The contract is not initializing.\n     */\n    error NotInitializing();\n\n    /**\n     * @dev Triggered when the contract has been initialized or reinitialized.\n     */\n    event Initialized(uint64 version);\n\n    /**\n     * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n     * `onlyInitializing` functions can be used to initialize parent contracts.\n     *\n     * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n     * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n     * production.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier initializer() {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        // Cache values to avoid duplicated sloads\n        bool isTopLevelCall = !$._initializing;\n        uint64 initialized = $._initialized;\n\n        // Allowed calls:\n        // - initialSetup: the contract is not in the initializing state and no previous version was\n        //                 initialized\n        // - construction: the contract is initialized at version 1 (no reininitialization) and the\n        //                 current contract is just being deployed\n        bool initialSetup = initialized == 0 && isTopLevelCall;\n        bool construction = initialized == 1 && address(this).code.length == 0;\n\n        if (!initialSetup && !construction) {\n            revert InvalidInitialization();\n        }\n        $._initialized = 1;\n        if (isTopLevelCall) {\n            $._initializing = true;\n        }\n        _;\n        if (isTopLevelCall) {\n            $._initializing = false;\n            emit Initialized(1);\n        }\n    }\n\n    /**\n     * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n     * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n     * used to initialize parent contracts.\n     *\n     * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n     * are added through upgrades and that require initialization.\n     *\n     * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n     * cannot be nested. If one is invoked in the context of another, execution will revert.\n     *\n     * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n     * a contract, executing them in the right order is up to the developer or operator.\n     *\n     * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n     *\n     * Emits an {Initialized} event.\n     */\n    modifier reinitializer(uint64 version) {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing || $._initialized >= version) {\n            revert InvalidInitialization();\n        }\n        $._initialized = version;\n        $._initializing = true;\n        _;\n        $._initializing = false;\n        emit Initialized(version);\n    }\n\n    /**\n     * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n     * {initializer} and {reinitializer} modifiers, directly or indirectly.\n     */\n    modifier onlyInitializing() {\n        _checkInitializing();\n        _;\n    }\n\n    /**\n     * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n     */\n    function _checkInitializing() internal view virtual {\n        if (!_isInitializing()) {\n            revert NotInitializing();\n        }\n    }\n\n    /**\n     * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n     * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n     * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n     * through proxies.\n     *\n     * Emits an {Initialized} event the first time it is successfully executed.\n     */\n    function _disableInitializers() internal virtual {\n        // solhint-disable-next-line var-name-mixedcase\n        InitializableStorage storage $ = _getInitializableStorage();\n\n        if ($._initializing) {\n            revert InvalidInitialization();\n        }\n        if ($._initialized != type(uint64).max) {\n            $._initialized = type(uint64).max;\n            emit Initialized(type(uint64).max);\n        }\n    }\n\n    /**\n     * @dev Returns the highest version that has been initialized. See {reinitializer}.\n     */\n    function _getInitializedVersion() internal view returns (uint64) {\n        return _getInitializableStorage()._initialized;\n    }\n\n    /**\n     * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n     */\n    function _isInitializing() internal view returns (bool) {\n        return _getInitializableStorage()._initializing;\n    }\n\n    /**\n     * @dev Returns a pointer to the storage namespace.\n     */\n    // solhint-disable-next-line var-name-mixedcase\n    function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n        assembly {\n            $.slot := INITIALIZABLE_STORAGE\n        }\n    }\n}\n"},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\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 ContextUpgradeable is Initializable {\n    function __Context_init() internal onlyInitializing {\n    }\n\n    function __Context_init_unchained() internal onlyInitializing {\n    }\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/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n *     require(hasRole(MY_ROLE, msg.sender));\n *     ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n    struct RoleData {\n        mapping(address account => bool) hasRole;\n        bytes32 adminRole;\n    }\n\n    mapping(bytes32 role => RoleData) private _roles;\n\n    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n    /**\n     * @dev Modifier that checks that an account has a specific role. Reverts\n     * with an {AccessControlUnauthorizedAccount} error including the required role.\n     */\n    modifier onlyRole(bytes32 role) {\n        _checkRole(role);\n        _;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n        return _roles[role].hasRole[account];\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n     * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n     */\n    function _checkRole(bytes32 role) internal view virtual {\n        _checkRole(role, _msgSender());\n    }\n\n    /**\n     * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n     * is missing `role`.\n     */\n    function _checkRole(bytes32 role, address account) internal view virtual {\n        if (!hasRole(role, account)) {\n            revert AccessControlUnauthorizedAccount(account, role);\n        }\n    }\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n        return _roles[role].adminRole;\n    }\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n        _revokeRole(role, account);\n    }\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been revoked `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n        if (callerConfirmation != _msgSender()) {\n            revert AccessControlBadConfirmation();\n        }\n\n        _revokeRole(role, callerConfirmation);\n    }\n\n    /**\n     * @dev Sets `adminRole` as ``role``'s admin role.\n     *\n     * Emits a {RoleAdminChanged} event.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n        bytes32 previousAdminRole = getRoleAdmin(role);\n        _roles[role].adminRole = adminRole;\n        emit RoleAdminChanged(role, previousAdminRole, adminRole);\n    }\n\n    /**\n     * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleGranted} event.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n        if (!hasRole(role, account)) {\n            _roles[role].hasRole[account] = true;\n            emit RoleGranted(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n     *\n     * Internal function without access restriction.\n     *\n     * May emit a {RoleRevoked} event.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n        if (hasRole(role, account)) {\n            _roles[role].hasRole[account] = false;\n            emit RoleRevoked(role, account, _msgSender());\n            return true;\n        } else {\n            return false;\n        }\n    }\n}\n"},"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/extensions/AccessControlDefaultAdminRules.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControlDefaultAdminRules} from \"./IAccessControlDefaultAdminRules.sol\";\nimport {AccessControl, IAccessControl} from \"../AccessControl.sol\";\nimport {SafeCast} from \"../../utils/math/SafeCast.sol\";\nimport {Math} from \"../../utils/math/Math.sol\";\nimport {IERC5313} from \"../../interfaces/IERC5313.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows specifying special rules to manage\n * the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions\n * over other roles that may potentially have privileged rights in the system.\n *\n * If a specific role doesn't have an admin role assigned, the holder of the\n * `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it.\n *\n * This contract implements the following risk mitigations on top of {AccessControl}:\n *\n * * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced.\n * * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account.\n * * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted.\n * * The delay can be changed by scheduling, see {changeDefaultAdminDelay}.\n * * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`.\n *\n * Example usage:\n *\n * ```solidity\n * contract MyToken is AccessControlDefaultAdminRules {\n *   constructor() AccessControlDefaultAdminRules(\n *     3 days,\n *     msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder\n *    ) {}\n * }\n * ```\n */\nabstract contract AccessControlDefaultAdminRules is IAccessControlDefaultAdminRules, IERC5313, AccessControl {\n    // pending admin pair read/written together frequently\n    address private _pendingDefaultAdmin;\n    uint48 private _pendingDefaultAdminSchedule; // 0 == unset\n\n    uint48 private _currentDelay;\n    address private _currentDefaultAdmin;\n\n    // pending delay pair read/written together frequently\n    uint48 private _pendingDelay;\n    uint48 private _pendingDelaySchedule; // 0 == unset\n\n    /**\n     * @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.\n     */\n    constructor(uint48 initialDelay, address initialDefaultAdmin) {\n        if (initialDefaultAdmin == address(0)) {\n            revert AccessControlInvalidDefaultAdmin(address(0));\n        }\n        _currentDelay = initialDelay;\n        _grantRole(DEFAULT_ADMIN_ROLE, initialDefaultAdmin);\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IAccessControlDefaultAdminRules).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC5313-owner}.\n     */\n    function owner() public view virtual returns (address) {\n        return defaultAdmin();\n    }\n\n    ///\n    /// Override AccessControl role management\n    ///\n\n    /**\n     * @dev See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\n     */\n    function grantRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n        if (role == DEFAULT_ADMIN_ROLE) {\n            revert AccessControlEnforcedDefaultAdminRules();\n        }\n        super.grantRole(role, account);\n    }\n\n    /**\n     * @dev See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\n     */\n    function revokeRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n        if (role == DEFAULT_ADMIN_ROLE) {\n            revert AccessControlEnforcedDefaultAdminRules();\n        }\n        super.revokeRole(role, account);\n    }\n\n    /**\n     * @dev See {AccessControl-renounceRole}.\n     *\n     * For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling\n     * {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule\n     * has also passed when calling this function.\n     *\n     * After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions.\n     *\n     * NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin},\n     * thereby disabling any functionality that is only available for it, and the possibility of reassigning a\n     * non-administrated role.\n     */\n    function renounceRole(bytes32 role, address account) public virtual override(AccessControl, IAccessControl) {\n        if (role == DEFAULT_ADMIN_ROLE && account == defaultAdmin()) {\n            (address newDefaultAdmin, uint48 schedule) = pendingDefaultAdmin();\n            if (newDefaultAdmin != address(0) || !_isScheduleSet(schedule) || !_hasSchedulePassed(schedule)) {\n                revert AccessControlEnforcedDefaultAdminDelay(schedule);\n            }\n            delete _pendingDefaultAdminSchedule;\n        }\n        super.renounceRole(role, account);\n    }\n\n    /**\n     * @dev See {AccessControl-_grantRole}.\n     *\n     * For `DEFAULT_ADMIN_ROLE`, it only allows granting if there isn't already a {defaultAdmin} or if the\n     * role has been previously renounced.\n     *\n     * NOTE: Exposing this function through another mechanism may make the `DEFAULT_ADMIN_ROLE`\n     * assignable again. Make sure to guarantee this is the expected behavior in your implementation.\n     */\n    function _grantRole(bytes32 role, address account) internal virtual override returns (bool) {\n        if (role == DEFAULT_ADMIN_ROLE) {\n            if (defaultAdmin() != address(0)) {\n                revert AccessControlEnforcedDefaultAdminRules();\n            }\n            _currentDefaultAdmin = account;\n        }\n        return super._grantRole(role, account);\n    }\n\n    /**\n     * @dev See {AccessControl-_revokeRole}.\n     */\n    function _revokeRole(bytes32 role, address account) internal virtual override returns (bool) {\n        if (role == DEFAULT_ADMIN_ROLE && account == defaultAdmin()) {\n            delete _currentDefaultAdmin;\n        }\n        return super._revokeRole(role, account);\n    }\n\n    /**\n     * @dev See {AccessControl-_setRoleAdmin}. Reverts for `DEFAULT_ADMIN_ROLE`.\n     */\n    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual override {\n        if (role == DEFAULT_ADMIN_ROLE) {\n            revert AccessControlEnforcedDefaultAdminRules();\n        }\n        super._setRoleAdmin(role, adminRole);\n    }\n\n    ///\n    /// AccessControlDefaultAdminRules accessors\n    ///\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function defaultAdmin() public view virtual returns (address) {\n        return _currentDefaultAdmin;\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function pendingDefaultAdmin() public view virtual returns (address newAdmin, uint48 schedule) {\n        return (_pendingDefaultAdmin, _pendingDefaultAdminSchedule);\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function defaultAdminDelay() public view virtual returns (uint48) {\n        uint48 schedule = _pendingDelaySchedule;\n        return (_isScheduleSet(schedule) && _hasSchedulePassed(schedule)) ? _pendingDelay : _currentDelay;\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function pendingDefaultAdminDelay() public view virtual returns (uint48 newDelay, uint48 schedule) {\n        schedule = _pendingDelaySchedule;\n        return (_isScheduleSet(schedule) && !_hasSchedulePassed(schedule)) ? (_pendingDelay, schedule) : (0, 0);\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function defaultAdminDelayIncreaseWait() public view virtual returns (uint48) {\n        return 5 days;\n    }\n\n    ///\n    /// AccessControlDefaultAdminRules public and internal setters for defaultAdmin/pendingDefaultAdmin\n    ///\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function beginDefaultAdminTransfer(address newAdmin) public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n        _beginDefaultAdminTransfer(newAdmin);\n    }\n\n    /**\n     * @dev See {beginDefaultAdminTransfer}.\n     *\n     * Internal function without access restriction.\n     */\n    function _beginDefaultAdminTransfer(address newAdmin) internal virtual {\n        uint48 newSchedule = SafeCast.toUint48(block.timestamp) + defaultAdminDelay();\n        _setPendingDefaultAdmin(newAdmin, newSchedule);\n        emit DefaultAdminTransferScheduled(newAdmin, newSchedule);\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function cancelDefaultAdminTransfer() public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n        _cancelDefaultAdminTransfer();\n    }\n\n    /**\n     * @dev See {cancelDefaultAdminTransfer}.\n     *\n     * Internal function without access restriction.\n     */\n    function _cancelDefaultAdminTransfer() internal virtual {\n        _setPendingDefaultAdmin(address(0), 0);\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function acceptDefaultAdminTransfer() public virtual {\n        (address newDefaultAdmin, ) = pendingDefaultAdmin();\n        if (_msgSender() != newDefaultAdmin) {\n            // Enforce newDefaultAdmin explicit acceptance.\n            revert AccessControlInvalidDefaultAdmin(_msgSender());\n        }\n        _acceptDefaultAdminTransfer();\n    }\n\n    /**\n     * @dev See {acceptDefaultAdminTransfer}.\n     *\n     * Internal function without access restriction.\n     */\n    function _acceptDefaultAdminTransfer() internal virtual {\n        (address newAdmin, uint48 schedule) = pendingDefaultAdmin();\n        if (!_isScheduleSet(schedule) || !_hasSchedulePassed(schedule)) {\n            revert AccessControlEnforcedDefaultAdminDelay(schedule);\n        }\n        _revokeRole(DEFAULT_ADMIN_ROLE, defaultAdmin());\n        _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\n        delete _pendingDefaultAdmin;\n        delete _pendingDefaultAdminSchedule;\n    }\n\n    ///\n    /// AccessControlDefaultAdminRules public and internal setters for defaultAdminDelay/pendingDefaultAdminDelay\n    ///\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function changeDefaultAdminDelay(uint48 newDelay) public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n        _changeDefaultAdminDelay(newDelay);\n    }\n\n    /**\n     * @dev See {changeDefaultAdminDelay}.\n     *\n     * Internal function without access restriction.\n     */\n    function _changeDefaultAdminDelay(uint48 newDelay) internal virtual {\n        uint48 newSchedule = SafeCast.toUint48(block.timestamp) + _delayChangeWait(newDelay);\n        _setPendingDelay(newDelay, newSchedule);\n        emit DefaultAdminDelayChangeScheduled(newDelay, newSchedule);\n    }\n\n    /**\n     * @inheritdoc IAccessControlDefaultAdminRules\n     */\n    function rollbackDefaultAdminDelay() public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\n        _rollbackDefaultAdminDelay();\n    }\n\n    /**\n     * @dev See {rollbackDefaultAdminDelay}.\n     *\n     * Internal function without access restriction.\n     */\n    function _rollbackDefaultAdminDelay() internal virtual {\n        _setPendingDelay(0, 0);\n    }\n\n    /**\n     * @dev Returns the amount of seconds to wait after the `newDelay` will\n     * become the new {defaultAdminDelay}.\n     *\n     * The value returned guarantees that if the delay is reduced, it will go into effect\n     * after a wait that honors the previously set delay.\n     *\n     * See {defaultAdminDelayIncreaseWait}.\n     */\n    function _delayChangeWait(uint48 newDelay) internal view virtual returns (uint48) {\n        uint48 currentDelay = defaultAdminDelay();\n\n        // When increasing the delay, we schedule the delay change to occur after a period of \"new delay\" has passed, up\n        // to a maximum given by defaultAdminDelayIncreaseWait, by default 5 days. For example, if increasing from 1 day\n        // to 3 days, the new delay will come into effect after 3 days. If increasing from 1 day to 10 days, the new\n        // delay will come into effect after 5 days. The 5 day wait period is intended to be able to fix an error like\n        // using milliseconds instead of seconds.\n        //\n        // When decreasing the delay, we wait the difference between \"current delay\" and \"new delay\". This guarantees\n        // that an admin transfer cannot be made faster than \"current delay\" at the time the delay change is scheduled.\n        // For example, if decreasing from 10 days to 3 days, the new delay will come into effect after 7 days.\n        return\n            newDelay > currentDelay\n                ? uint48(Math.min(newDelay, defaultAdminDelayIncreaseWait())) // no need to safecast, both inputs are uint48\n                : currentDelay - newDelay;\n    }\n\n    ///\n    /// Private setters\n    ///\n\n    /**\n     * @dev Setter of the tuple for pending admin and its schedule.\n     *\n     * May emit a DefaultAdminTransferCanceled event.\n     */\n    function _setPendingDefaultAdmin(address newAdmin, uint48 newSchedule) private {\n        (, uint48 oldSchedule) = pendingDefaultAdmin();\n\n        _pendingDefaultAdmin = newAdmin;\n        _pendingDefaultAdminSchedule = newSchedule;\n\n        // An `oldSchedule` from `pendingDefaultAdmin()` is only set if it hasn't been accepted.\n        if (_isScheduleSet(oldSchedule)) {\n            // Emit for implicit cancellations when another default admin was scheduled.\n            emit DefaultAdminTransferCanceled();\n        }\n    }\n\n    /**\n     * @dev Setter of the tuple for pending delay and its schedule.\n     *\n     * May emit a DefaultAdminDelayChangeCanceled event.\n     */\n    function _setPendingDelay(uint48 newDelay, uint48 newSchedule) private {\n        uint48 oldSchedule = _pendingDelaySchedule;\n\n        if (_isScheduleSet(oldSchedule)) {\n            if (_hasSchedulePassed(oldSchedule)) {\n                // Materialize a virtual delay\n                _currentDelay = _pendingDelay;\n            } else {\n                // Emit for implicit cancellations when another delay was scheduled.\n                emit DefaultAdminDelayChangeCanceled();\n            }\n        }\n\n        _pendingDelay = newDelay;\n        _pendingDelaySchedule = newSchedule;\n    }\n\n    ///\n    /// Private helpers\n    ///\n\n    /**\n     * @dev Defines if an `schedule` is considered set. For consistency purposes.\n     */\n    function _isScheduleSet(uint48 schedule) private pure returns (bool) {\n        return schedule != 0;\n    }\n\n    /**\n     * @dev Defines if an `schedule` is considered passed. For consistency purposes.\n     */\n    function _hasSchedulePassed(uint48 schedule) private view returns (bool) {\n        return schedule < block.timestamp;\n    }\n}\n"},"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/extensions/IAccessControlDefaultAdminRules.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"../IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlDefaultAdminRules declared to support ERC-165 detection.\n */\ninterface IAccessControlDefaultAdminRules is IAccessControl {\n    /**\n     * @dev The new default admin is not a valid default admin.\n     */\n    error AccessControlInvalidDefaultAdmin(address defaultAdmin);\n\n    /**\n     * @dev At least one of the following rules was violated:\n     *\n     * - The `DEFAULT_ADMIN_ROLE` must only be managed by itself.\n     * - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time.\n     * - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\n     */\n    error AccessControlEnforcedDefaultAdminRules();\n\n    /**\n     * @dev The delay for transferring the default admin delay is enforced and\n     * the operation must wait until `schedule`.\n     *\n     * NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\n     */\n    error AccessControlEnforcedDefaultAdminDelay(uint48 schedule);\n\n    /**\n     * @dev Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next\n     * address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule`\n     * passes.\n     */\n    event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule);\n\n    /**\n     * @dev Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\n     */\n    event DefaultAdminTransferCanceled();\n\n    /**\n     * @dev Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next\n     * delay to be applied between default admin transfer after `effectSchedule` has passed.\n     */\n    event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule);\n\n    /**\n     * @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\n     */\n    event DefaultAdminDelayChangeCanceled();\n\n    /**\n     * @dev Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\n     */\n    function defaultAdmin() external view returns (address);\n\n    /**\n     * @dev Returns a tuple of a `newAdmin` and an accept schedule.\n     *\n     * After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role\n     * by calling {acceptDefaultAdminTransfer}, completing the role transfer.\n     *\n     * A zero value only in `acceptSchedule` indicates no pending admin transfer.\n     *\n     * NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\n     */\n    function pendingDefaultAdmin() external view returns (address newAdmin, uint48 acceptSchedule);\n\n    /**\n     * @dev Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started.\n     *\n     * This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set\n     * the acceptance schedule.\n     *\n     * NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this\n     * function returns the new delay. See {changeDefaultAdminDelay}.\n     */\n    function defaultAdminDelay() external view returns (uint48);\n\n    /**\n     * @dev Returns a tuple of `newDelay` and an effect schedule.\n     *\n     * After the `schedule` passes, the `newDelay` will get into effect immediately for every\n     * new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}.\n     *\n     * A zero value only in `effectSchedule` indicates no pending delay change.\n     *\n     * NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay}\n     * will be zero after the effect schedule.\n     */\n    function pendingDefaultAdminDelay() external view returns (uint48 newDelay, uint48 effectSchedule);\n\n    /**\n     * @dev Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance\n     * after the current timestamp plus a {defaultAdminDelay}.\n     *\n     * Requirements:\n     *\n     * - Only can be called by the current {defaultAdmin}.\n     *\n     * Emits a DefaultAdminRoleChangeStarted event.\n     */\n    function beginDefaultAdminTransfer(address newAdmin) external;\n\n    /**\n     * @dev Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n     *\n     * A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function.\n     *\n     * Requirements:\n     *\n     * - Only can be called by the current {defaultAdmin}.\n     *\n     * May emit a DefaultAdminTransferCanceled event.\n     */\n    function cancelDefaultAdminTransfer() external;\n\n    /**\n     * @dev Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n     *\n     * After calling the function:\n     *\n     * - `DEFAULT_ADMIN_ROLE` should be granted to the caller.\n     * - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder.\n     * - {pendingDefaultAdmin} should be reset to zero values.\n     *\n     * Requirements:\n     *\n     * - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`.\n     * - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\n     */\n    function acceptDefaultAdminTransfer() external;\n\n    /**\n     * @dev Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting\n     * into effect after the current timestamp plus a {defaultAdminDelay}.\n     *\n     * This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this\n     * method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay}\n     * set before calling.\n     *\n     * The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then\n     * calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin}\n     * complete transfer (including acceptance).\n     *\n     * The schedule is designed for two scenarios:\n     *\n     * - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by\n     * {defaultAdminDelayIncreaseWait}.\n     * - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`.\n     *\n     * A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change.\n     *\n     * Requirements:\n     *\n     * - Only can be called by the current {defaultAdmin}.\n     *\n     * Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\n     */\n    function changeDefaultAdminDelay(uint48 newDelay) external;\n\n    /**\n     * @dev Cancels a scheduled {defaultAdminDelay} change.\n     *\n     * Requirements:\n     *\n     * - Only can be called by the current {defaultAdmin}.\n     *\n     * May emit a DefaultAdminDelayChangeCanceled event.\n     */\n    function rollbackDefaultAdminDelay() external;\n\n    /**\n     * @dev Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay})\n     * to take effect. Default to 5 days.\n     *\n     * When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with\n     * the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds)\n     * that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can\n     * be overrode for a custom {defaultAdminDelay} increase scheduling.\n     *\n     * IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise,\n     * there's a risk of setting a high new delay that goes into effect almost immediately without the\n     * possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\n     */\n    function defaultAdminDelayIncreaseWait() external view returns (uint48);\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 detection.\n */\ninterface IAccessControl {\n    /**\n     * @dev The `account` is missing a role.\n     */\n    error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n    /**\n     * @dev The caller of a function is not the expected one.\n     *\n     * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n     */\n    error AccessControlBadConfirmation();\n\n    /**\n     * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n     *\n     * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n     * {RoleAdminChanged} not being emitted signaling this.\n     */\n    event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n    /**\n     * @dev Emitted when `account` is granted `role`.\n     *\n     * `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n     * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\n     */\n    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Emitted when `account` is revoked `role`.\n     *\n     * `sender` is the account that originated the contract call:\n     *   - if using `revokeRole`, it is the admin role bearer\n     *   - if using `renounceRole`, it is the role bearer (i.e. `account`)\n     */\n    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n    /**\n     * @dev Returns `true` if `account` has been granted `role`.\n     */\n    function hasRole(bytes32 role, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the admin role that controls `role`. See {grantRole} and\n     * {revokeRole}.\n     *\n     * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n     */\n    function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n    /**\n     * @dev Grants `role` to `account`.\n     *\n     * If `account` had not been already granted `role`, emits a {RoleGranted}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function grantRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from `account`.\n     *\n     * If `account` had been granted `role`, emits a {RoleRevoked} event.\n     *\n     * Requirements:\n     *\n     * - the caller must have ``role``'s admin role.\n     */\n    function revokeRole(bytes32 role, address account) external;\n\n    /**\n     * @dev Revokes `role` from the calling account.\n     *\n     * Roles are often managed via {grantRole} and {revokeRole}: this function's\n     * purpose is to provide a mechanism for accounts to lose their privileges\n     * if they are compromised (such as when a trusted device is misplaced).\n     *\n     * If the calling account had been granted `role`, emits a {RoleRevoked}\n     * event.\n     *\n     * Requirements:\n     *\n     * - the caller must be `callerConfirmation`.\n     */\n    function renounceRole(bytes32 role, address callerConfirmation) external;\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/interfaces/IERC1967.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1967.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\n */\ninterface IERC1967 {\n    /**\n     * @dev Emitted when the implementation is upgraded.\n     */\n    event Upgraded(address indexed implementation);\n\n    /**\n     * @dev Emitted when the admin account has changed.\n     */\n    event AdminChanged(address previousAdmin, address newAdmin);\n\n    /**\n     * @dev Emitted when the beacon is changed.\n     */\n    event BeaconUpgraded(address indexed beacon);\n}\n"},"@openzeppelin/contracts/interfaces/IERC5313.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5313.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface for the Light Contract Ownership Standard.\n *\n * A standardized minimal interface required to identify an account that controls a contract\n */\ninterface IERC5313 {\n    /**\n     * @dev Gets the address of the owner.\n     */\n    function owner() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n    /**\n     * @dev Must return an address that can be used as a delegate call target.\n     *\n     * {UpgradeableBeacon} will check that this address is a contract.\n     */\n    function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {Proxy} from \"../Proxy.sol\";\nimport {ERC1967Utils} from \"./ERC1967Utils.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n     * encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n     *\n     * Requirements:\n     *\n     * - If `data` is empty, `msg.value` must be zero.\n     */\n    constructor(address implementation, bytes memory _data) payable {\n        ERC1967Utils.upgradeToAndCall(implementation, _data);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n     * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\n     */\n    function _implementation() internal view virtual override returns (address) {\n        return ERC1967Utils.getImplementation();\n    }\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/ERC1967/ERC1967Utils.sol)\n\npragma solidity ^0.8.21;\n\nimport {IBeacon} from \"../beacon/IBeacon.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {Address} from \"../../utils/Address.sol\";\nimport {StorageSlot} from \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This library provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\n */\nlibrary ERC1967Utils {\n    /**\n     * @dev Storage slot with the address of the current implementation.\n     * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n    /**\n     * @dev The `implementation` of the proxy is invalid.\n     */\n    error ERC1967InvalidImplementation(address implementation);\n\n    /**\n     * @dev The `admin` of the proxy is invalid.\n     */\n    error ERC1967InvalidAdmin(address admin);\n\n    /**\n     * @dev The `beacon` of the proxy is invalid.\n     */\n    error ERC1967InvalidBeacon(address beacon);\n\n    /**\n     * @dev An upgrade function sees `msg.value > 0` that may be lost.\n     */\n    error ERC1967NonPayable();\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function getImplementation() internal view returns (address) {\n        return StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the ERC-1967 implementation slot.\n     */\n    function _setImplementation(address newImplementation) private {\n        if (newImplementation.code.length == 0) {\n            revert ERC1967InvalidImplementation(newImplementation);\n        }\n        StorageSlot.getAddressSlot(IMPLEMENTATION_SLOT).value = newImplementation;\n    }\n\n    /**\n     * @dev Performs implementation upgrade with additional setup call if data is nonempty.\n     * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n     * to avoid stuck value in the contract.\n     *\n     * Emits an {IERC1967-Upgraded} event.\n     */\n    function upgradeToAndCall(address newImplementation, bytes memory data) internal {\n        _setImplementation(newImplementation);\n        emit IERC1967.Upgraded(newImplementation);\n\n        if (data.length > 0) {\n            Address.functionDelegateCall(newImplementation, data);\n        } else {\n            _checkNonPayable();\n        }\n    }\n\n    /**\n     * @dev Storage slot with the admin of the contract.\n     * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n    /**\n     * @dev Returns the current admin.\n     *\n     * TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n     * the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n     * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\n     */\n    function getAdmin() internal view returns (address) {\n        return StorageSlot.getAddressSlot(ADMIN_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new address in the ERC-1967 admin slot.\n     */\n    function _setAdmin(address newAdmin) private {\n        if (newAdmin == address(0)) {\n            revert ERC1967InvalidAdmin(address(0));\n        }\n        StorageSlot.getAddressSlot(ADMIN_SLOT).value = newAdmin;\n    }\n\n    /**\n     * @dev Changes the admin of the proxy.\n     *\n     * Emits an {IERC1967-AdminChanged} event.\n     */\n    function changeAdmin(address newAdmin) internal {\n        emit IERC1967.AdminChanged(getAdmin(), newAdmin);\n        _setAdmin(newAdmin);\n    }\n\n    /**\n     * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n     * This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1.\n     */\n    // solhint-disable-next-line private-vars-leading-underscore\n    bytes32 internal constant BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n    /**\n     * @dev Returns the current beacon.\n     */\n    function getBeacon() internal view returns (address) {\n        return StorageSlot.getAddressSlot(BEACON_SLOT).value;\n    }\n\n    /**\n     * @dev Stores a new beacon in the ERC-1967 beacon slot.\n     */\n    function _setBeacon(address newBeacon) private {\n        if (newBeacon.code.length == 0) {\n            revert ERC1967InvalidBeacon(newBeacon);\n        }\n\n        StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;\n\n        address beaconImplementation = IBeacon(newBeacon).implementation();\n        if (beaconImplementation.code.length == 0) {\n            revert ERC1967InvalidImplementation(beaconImplementation);\n        }\n    }\n\n    /**\n     * @dev Change the beacon and trigger a setup call if data is nonempty.\n     * This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n     * to avoid stuck value in the contract.\n     *\n     * Emits an {IERC1967-BeaconUpgraded} event.\n     *\n     * CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n     * it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n     * efficiency.\n     */\n    function upgradeBeaconToAndCall(address newBeacon, bytes memory data) internal {\n        _setBeacon(newBeacon);\n        emit IERC1967.BeaconUpgraded(newBeacon);\n\n        if (data.length > 0) {\n            Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n        } else {\n            _checkNonPayable();\n        }\n    }\n\n    /**\n     * @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n     * if an upgrade doesn't perform an initialization call.\n     */\n    function _checkNonPayable() private {\n        if (msg.value > 0) {\n            revert ERC1967NonPayable();\n        }\n    }\n}\n"},"@openzeppelin/contracts/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n    /**\n     * @dev Delegates the current call to `implementation`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _delegate(address implementation) internal virtual {\n        assembly {\n            // Copy msg.data. We take full control of memory in this inline assembly\n            // block because it will not return to Solidity code. We overwrite the\n            // Solidity scratch pad at memory position 0.\n            calldatacopy(0, 0, calldatasize())\n\n            // Call the implementation.\n            // out and outsize are 0 because we don't know the size yet.\n            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n            // Copy the returned data.\n            returndatacopy(0, 0, returndatasize())\n\n            switch result\n            // delegatecall returns 0 on error.\n            case 0 {\n                revert(0, returndatasize())\n            }\n            default {\n                return(0, returndatasize())\n            }\n        }\n    }\n\n    /**\n     * @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n     * function and {_fallback} should delegate.\n     */\n    function _implementation() internal view virtual returns (address);\n\n    /**\n     * @dev Delegates the current call to the address returned by `_implementation()`.\n     *\n     * This function does not return to its internal call site, it will return directly to the external caller.\n     */\n    function _fallback() internal virtual {\n        _delegate(_implementation());\n    }\n\n    /**\n     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n     * function in the contract matches the call data.\n     */\n    fallback() external payable virtual {\n        _fallback();\n    }\n}\n"},"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/transparent/ProxyAdmin.sol)\n\npragma solidity ^0.8.20;\n\nimport {ITransparentUpgradeableProxy} from \"./TransparentUpgradeableProxy.sol\";\nimport {Ownable} from \"../../access/Ownable.sol\";\n\n/**\n * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n * explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\n */\ncontract ProxyAdmin is Ownable {\n    /**\n     * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n     * and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n     * while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n     * If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must\n     * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n     * during an upgrade.\n     */\n    string public constant UPGRADE_INTERFACE_VERSION = \"5.0.0\";\n\n    /**\n     * @dev Sets the initial owner who can perform upgrades.\n     */\n    constructor(address initialOwner) Ownable(initialOwner) {}\n\n    /**\n     * @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n     * See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n     *\n     * Requirements:\n     *\n     * - This contract must be the admin of `proxy`.\n     * - If `data` is empty, `msg.value` must be zero.\n     */\n    function upgradeAndCall(\n        ITransparentUpgradeableProxy proxy,\n        address implementation,\n        bytes memory data\n    ) public payable virtual onlyOwner {\n        proxy.upgradeToAndCall{value: msg.value}(implementation, data);\n    }\n}\n"},"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (proxy/transparent/TransparentUpgradeableProxy.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC1967Utils} from \"../ERC1967/ERC1967Utils.sol\";\nimport {ERC1967Proxy} from \"../ERC1967/ERC1967Proxy.sol\";\nimport {IERC1967} from \"../../interfaces/IERC1967.sol\";\nimport {ProxyAdmin} from \"./ProxyAdmin.sol\";\n\n/**\n * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n * include them in the ABI so this interface must be used to interact with it.\n */\ninterface ITransparentUpgradeableProxy is IERC1967 {\n    /// @dev See {UUPSUpgradeable-upgradeToAndCall}\n    function upgradeToAndCall(address newImplementation, bytes calldata data) external payable;\n}\n\n/**\n * @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n *\n * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n * clashing], which can potentially be used in an attack, this contract uses the\n * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n * things that go hand in hand:\n *\n * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n * that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n * 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n * the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n * the proxy admin cannot fallback to the target implementation.\n *\n * These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n * dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n * call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n * allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n * interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n *\n * NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n * inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n * mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n * fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n * implementation.\n *\n * NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n * meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n *\n * IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n * immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n * overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n * undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n * is generally fine if the implementation is trusted.\n *\n * WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n * compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n * function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n * could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\n */\ncontract TransparentUpgradeableProxy is ERC1967Proxy {\n    // An immutable address for the admin to avoid unnecessary SLOADs before each call\n    // at the expense of removing the ability to change the admin once it's set.\n    // This is acceptable if the admin is always a ProxyAdmin instance or similar contract\n    // with its own ability to transfer the permissions to another account.\n    address private immutable _admin;\n\n    /**\n     * @dev The proxy caller is the current admin, and can't fallback to the proxy target.\n     */\n    error ProxyDeniedAdminAccess();\n\n    /**\n     * @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n     * backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n     * {ERC1967Proxy-constructor}.\n     */\n    constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) {\n        _admin = address(new ProxyAdmin(initialOwner));\n        // Set the storage value and emit an event for ERC-1967 compatibility\n        ERC1967Utils.changeAdmin(_proxyAdmin());\n    }\n\n    /**\n     * @dev Returns the admin of this proxy.\n     */\n    function _proxyAdmin() internal view virtual returns (address) {\n        return _admin;\n    }\n\n    /**\n     * @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior.\n     */\n    function _fallback() internal virtual override {\n        if (msg.sender == _proxyAdmin()) {\n            if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) {\n                revert ProxyDeniedAdminAccess();\n            } else {\n                _dispatchUpgradeToAndCall();\n            }\n        } else {\n            super._fallback();\n        }\n    }\n\n    /**\n     * @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n     *\n     * Requirements:\n     *\n     * - If `data` is empty, `msg.value` must be zero.\n     */\n    function _dispatchUpgradeToAndCall() private {\n        (address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));\n        ERC1967Utils.upgradeToAndCall(newImplementation, data);\n    }\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\nimport {Errors} from \"./Errors.sol\";\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev There's no code at `target` (it is not a contract).\n     */\n    error AddressEmptyCode(address target);\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        if (address(this).balance < amount) {\n            revert Errors.InsufficientBalance(address(this).balance, amount);\n        }\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        if (!success) {\n            revert Errors.FailedCall();\n        }\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason or custom error, it is bubbled\n     * up by this function (like regular Solidity function calls). However, if\n     * the call reverted with no returned reason, this function reverts with a\n     * {Errors.FailedCall} error.\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        if (address(this).balance < value) {\n            revert Errors.InsufficientBalance(address(this).balance, value);\n        }\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n     * was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case\n     * of an unsuccessful call.\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata\n    ) internal view returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            // only check if target is a contract if the call was successful and the return data is empty\n            // otherwise we already know that it was a contract\n            if (returndata.length == 0 && target.code.length == 0) {\n                revert AddressEmptyCode(target);\n            }\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n     * revert reason or with a default {Errors.FailedCall} error.\n     */\n    function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n        if (!success) {\n            _revert(returndata);\n        } else {\n            return returndata;\n        }\n    }\n\n    /**\n     * @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}.\n     */\n    function _revert(bytes memory returndata) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            assembly (\"memory-safe\") {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert Errors.FailedCall();\n        }\n    }\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/utils/Errors.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of common custom errors used in multiple contracts\n *\n * IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n * It is recommended to avoid relying on the error API for critical functionality.\n *\n * _Available since v5.1._\n */\nlibrary Errors {\n    /**\n     * @dev The ETH balance of the account is not enough to perform the operation.\n     */\n    error InsufficientBalance(uint256 balance, uint256 needed);\n\n    /**\n     * @dev A call to an address target failed. The target may have reverted.\n     */\n    error FailedCall();\n\n    /**\n     * @dev The deployment failed.\n     */\n    error FailedDeployment();\n\n    /**\n     * @dev A necessary precompile is missing.\n     */\n    error MissingPrecompile(address);\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.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 ERC-165 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/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\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[ERC 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/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\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 success flag (no overflow).\n     */\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n     */\n    function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no overflow).\n     */\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n     */\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\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 success flag (no division by zero).\n     */\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n        unchecked {\n            if (b == 0) return (false, 0);\n            return (true, a % b);\n        }\n    }\n\n    /**\n     * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n     *\n     * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n     * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n     * one branch when needed, making this function more expensive.\n     */\n    function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n        unchecked {\n            // branchless ternary works because:\n            // b ^ (a ^ b) == a\n            // b ^ 0 == b\n            return b ^ ((a ^ b) * SafeCast.toUint(condition));\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 ternary(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 ternary(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            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n\n        // The following calculation ensures accurate ceiling division without overflow.\n        // Since a is non-zero, (a - 1) / b will not overflow.\n        // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n        // but the largest value we can obtain is type(uint256).max - 1, which happens\n        // when a = type(uint256).max and b = 1.\n        unchecked {\n            return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n        }\n    }\n\n    /**\n     * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n     * denominator == 0.\n     *\n     * 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²⁵⁶ and mod 2²⁵⁶ - 1, then use\n            // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2²⁵⁶ + 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²⁵⁶. Also prevents denominator == 0.\n            if (denominator <= prod1) {\n                Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\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²⁵⁶ / 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²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n            // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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⁸\n            inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n            inverse *= 2 - denominator * inverse; // inverse mod 2³²\n            inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n            inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n            inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n            // less than 2²⁵⁶, 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     * @dev 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        return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n    }\n\n    /**\n     * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n     *\n     * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n     * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n     *\n     * If the input value is not inversible, 0 is returned.\n     *\n     * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n     * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n     */\n    function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n        unchecked {\n            if (n == 0) return 0;\n\n            // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n            // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n            // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n            // ax + ny = 1\n            // ax = 1 + (-y)n\n            // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n            // If the remainder is 0 the gcd is n right away.\n            uint256 remainder = a % n;\n            uint256 gcd = n;\n\n            // Therefore the initial coefficients are:\n            // ax + ny = gcd(a, n) = n\n            // 0a + 1n = n\n            int256 x = 0;\n            int256 y = 1;\n\n            while (remainder != 0) {\n                uint256 quotient = gcd / remainder;\n\n                (gcd, remainder) = (\n                    // The old remainder is the next gcd to try.\n                    remainder,\n                    // Compute the next remainder.\n                    // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n                    // where gcd is at most n (capped to type(uint256).max)\n                    gcd - remainder * quotient\n                );\n\n                (x, y) = (\n                    // Increment the coefficient of a.\n                    y,\n                    // Decrement the coefficient of n.\n                    // Can overflow, but the result is casted to uint256 so that the\n                    // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n                    x - y * int256(quotient)\n                );\n            }\n\n            if (gcd != 1) return 0; // No inverse exists.\n            return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n        }\n    }\n\n    /**\n     * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n     *\n     * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n     * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n     * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n     *\n     * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n     */\n    function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n        unchecked {\n            return Math.modExp(a, p - 2, p);\n        }\n    }\n\n    /**\n     * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n     *\n     * Requirements:\n     * - modulus can't be zero\n     * - underlying staticcall to precompile must succeed\n     *\n     * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n     * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n     * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n     * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n     * interpreted as 0.\n     */\n    function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n        (bool success, uint256 result) = tryModExp(b, e, m);\n        if (!success) {\n            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n     * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n     * to operate modulo 0 or if the underlying precompile reverted.\n     *\n     * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n     * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n     * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n     * of a revert, but the result may be incorrectly interpreted as 0.\n     */\n    function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n        if (m == 0) return (false, 0);\n        assembly (\"memory-safe\") {\n            let ptr := mload(0x40)\n            // | Offset    | Content    | Content (Hex)                                                      |\n            // |-----------|------------|--------------------------------------------------------------------|\n            // | 0x00:0x1f | size of b  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x20:0x3f | size of e  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x40:0x5f | size of m  | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n            // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n            // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n            // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n            mstore(ptr, 0x20)\n            mstore(add(ptr, 0x20), 0x20)\n            mstore(add(ptr, 0x40), 0x20)\n            mstore(add(ptr, 0x60), b)\n            mstore(add(ptr, 0x80), e)\n            mstore(add(ptr, 0xa0), m)\n\n            // Given the result < m, it's guaranteed to fit in 32 bytes,\n            // so we can use the memory scratch space located at offset 0.\n            success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n            result := mload(0x00)\n        }\n    }\n\n    /**\n     * @dev Variant of {modExp} that supports inputs of arbitrary length.\n     */\n    function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n        (bool success, bytes memory result) = tryModExp(b, e, m);\n        if (!success) {\n            Panic.panic(Panic.DIVISION_BY_ZERO);\n        }\n        return result;\n    }\n\n    /**\n     * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n     */\n    function tryModExp(\n        bytes memory b,\n        bytes memory e,\n        bytes memory m\n    ) internal view returns (bool success, bytes memory result) {\n        if (_zeroBytes(m)) return (false, new bytes(0));\n\n        uint256 mLen = m.length;\n\n        // Encode call args in result and move the free memory pointer\n        result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n        assembly (\"memory-safe\") {\n            let dataPtr := add(result, 0x20)\n            // Write result on top of args to avoid allocating extra memory.\n            success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n            // Overwrite the length.\n            // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n            mstore(result, mLen)\n            // Set the memory pointer after the returned data.\n            mstore(0x40, add(dataPtr, mLen))\n        }\n    }\n\n    /**\n     * @dev Returns whether the provided byte array is zero.\n     */\n    function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n        for (uint256 i = 0; i < byteArray.length; ++i) {\n            if (byteArray[i] != 0) {\n                return false;\n            }\n        }\n        return true;\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     * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n     * using integer operations.\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        unchecked {\n            // Take care of easy edge cases when a == 0 or a == 1\n            if (a <= 1) {\n                return a;\n            }\n\n            // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n            // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n            // the current value as `ε_n = | x_n - sqrt(a) |`.\n            //\n            // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n            // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n            // bigger than any uint256.\n            //\n            // By noticing that\n            // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n            // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n            // to the msb function.\n            uint256 aa = a;\n            uint256 xn = 1;\n\n            if (aa >= (1 << 128)) {\n                aa >>= 128;\n                xn <<= 64;\n            }\n            if (aa >= (1 << 64)) {\n                aa >>= 64;\n                xn <<= 32;\n            }\n            if (aa >= (1 << 32)) {\n                aa >>= 32;\n                xn <<= 16;\n            }\n            if (aa >= (1 << 16)) {\n                aa >>= 16;\n                xn <<= 8;\n            }\n            if (aa >= (1 << 8)) {\n                aa >>= 8;\n                xn <<= 4;\n            }\n            if (aa >= (1 << 4)) {\n                aa >>= 4;\n                xn <<= 2;\n            }\n            if (aa >= (1 << 2)) {\n                xn <<= 1;\n            }\n\n            // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n            //\n            // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n            // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n            // This is going to be our x_0 (and ε_0)\n            xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n            // From here, Newton's method give us:\n            // x_{n+1} = (x_n + a / x_n) / 2\n            //\n            // One should note that:\n            // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n            //              = ((x_n² + a) / (2 * x_n))² - a\n            //              = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n            //              = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n            //              = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n            //              = (x_n² - a)² / (2 * x_n)²\n            //              = ((x_n² - a) / (2 * x_n))²\n            //              ≥ 0\n            // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n            //\n            // This gives us the proof of quadratic convergence of the sequence:\n            // ε_{n+1} = | x_{n+1} - sqrt(a) |\n            //         = | (x_n + a / x_n) / 2 - sqrt(a) |\n            //         = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n            //         = | (x_n - sqrt(a))² / (2 * x_n) |\n            //         = | ε_n² / (2 * x_n) |\n            //         = ε_n² / | (2 * x_n) |\n            //\n            // For the first iteration, we have a special case where x_0 is known:\n            // ε_1 = ε_0² / | (2 * x_0) |\n            //     ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n            //     ≤ 2**(2*e-4) / (3 * 2**(e-1))\n            //     ≤ 2**(e-3) / 3\n            //     ≤ 2**(e-3-log2(3))\n            //     ≤ 2**(e-4.5)\n            //\n            // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n            // ε_{n+1} = ε_n² / | (2 * x_n) |\n            //         ≤ (2**(e-k))² / (2 * 2**(e-1))\n            //         ≤ 2**(2*e-2*k) / 2**e\n            //         ≤ 2**(e-2*k)\n            xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5)  -- special case, see above\n            xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9)    -- general case with k = 4.5\n            xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18)   -- general case with k = 9\n            xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36)   -- general case with k = 18\n            xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72)   -- general case with k = 36\n            xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144)  -- general case with k = 72\n\n            // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n            // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n            // sqrt(a) or sqrt(a) + 1.\n            return xn - SafeCast.toUint(xn > a / xn);\n        }\n    }\n\n    /**\n     * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\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        uint256 exp;\n        unchecked {\n            exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n            value >>= exp;\n            result += exp;\n\n            exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n            value >>= exp;\n            result += exp;\n\n            result += SafeCast.toUint(value > 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\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        uint256 isGt;\n        unchecked {\n            isGt = SafeCast.toUint(value > (1 << 128) - 1);\n            value >>= isGt * 128;\n            result += isGt * 16;\n\n            isGt = SafeCast.toUint(value > (1 << 64) - 1);\n            value >>= isGt * 64;\n            result += isGt * 8;\n\n            isGt = SafeCast.toUint(value > (1 << 32) - 1);\n            value >>= isGt * 32;\n            result += isGt * 4;\n\n            isGt = SafeCast.toUint(value > (1 << 16) - 1);\n            value >>= isGt * 16;\n            result += isGt * 2;\n\n            result += SafeCast.toUint(value > (1 << 8) - 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\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/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n    /**\n     * @dev Value doesn't fit in an uint of `bits` size.\n     */\n    error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n    /**\n     * @dev An int value doesn't fit in an uint of `bits` size.\n     */\n    error SafeCastOverflowedIntToUint(int256 value);\n\n    /**\n     * @dev Value doesn't fit in an int of `bits` size.\n     */\n    error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n    /**\n     * @dev An uint value doesn't fit in an int of `bits` size.\n     */\n    error SafeCastOverflowedUintToInt(uint256 value);\n\n    /**\n     * @dev Returns the downcasted uint248 from uint256, reverting on\n     * overflow (when the input is greater than largest uint248).\n     *\n     * Counterpart to Solidity's `uint248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     */\n    function toUint248(uint256 value) internal pure returns (uint248) {\n        if (value > type(uint248).max) {\n            revert SafeCastOverflowedUintDowncast(248, value);\n        }\n        return uint248(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint240 from uint256, reverting on\n     * overflow (when the input is greater than largest uint240).\n     *\n     * Counterpart to Solidity's `uint240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     */\n    function toUint240(uint256 value) internal pure returns (uint240) {\n        if (value > type(uint240).max) {\n            revert SafeCastOverflowedUintDowncast(240, value);\n        }\n        return uint240(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint232 from uint256, reverting on\n     * overflow (when the input is greater than largest uint232).\n     *\n     * Counterpart to Solidity's `uint232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     */\n    function toUint232(uint256 value) internal pure returns (uint232) {\n        if (value > type(uint232).max) {\n            revert SafeCastOverflowedUintDowncast(232, value);\n        }\n        return uint232(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint224 from uint256, reverting on\n     * overflow (when the input is greater than largest uint224).\n     *\n     * Counterpart to Solidity's `uint224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     */\n    function toUint224(uint256 value) internal pure returns (uint224) {\n        if (value > type(uint224).max) {\n            revert SafeCastOverflowedUintDowncast(224, value);\n        }\n        return uint224(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint216 from uint256, reverting on\n     * overflow (when the input is greater than largest uint216).\n     *\n     * Counterpart to Solidity's `uint216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     */\n    function toUint216(uint256 value) internal pure returns (uint216) {\n        if (value > type(uint216).max) {\n            revert SafeCastOverflowedUintDowncast(216, value);\n        }\n        return uint216(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint208 from uint256, reverting on\n     * overflow (when the input is greater than largest uint208).\n     *\n     * Counterpart to Solidity's `uint208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     */\n    function toUint208(uint256 value) internal pure returns (uint208) {\n        if (value > type(uint208).max) {\n            revert SafeCastOverflowedUintDowncast(208, value);\n        }\n        return uint208(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint200 from uint256, reverting on\n     * overflow (when the input is greater than largest uint200).\n     *\n     * Counterpart to Solidity's `uint200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     */\n    function toUint200(uint256 value) internal pure returns (uint200) {\n        if (value > type(uint200).max) {\n            revert SafeCastOverflowedUintDowncast(200, value);\n        }\n        return uint200(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint192 from uint256, reverting on\n     * overflow (when the input is greater than largest uint192).\n     *\n     * Counterpart to Solidity's `uint192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     */\n    function toUint192(uint256 value) internal pure returns (uint192) {\n        if (value > type(uint192).max) {\n            revert SafeCastOverflowedUintDowncast(192, value);\n        }\n        return uint192(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint184 from uint256, reverting on\n     * overflow (when the input is greater than largest uint184).\n     *\n     * Counterpart to Solidity's `uint184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     */\n    function toUint184(uint256 value) internal pure returns (uint184) {\n        if (value > type(uint184).max) {\n            revert SafeCastOverflowedUintDowncast(184, value);\n        }\n        return uint184(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint176 from uint256, reverting on\n     * overflow (when the input is greater than largest uint176).\n     *\n     * Counterpart to Solidity's `uint176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     */\n    function toUint176(uint256 value) internal pure returns (uint176) {\n        if (value > type(uint176).max) {\n            revert SafeCastOverflowedUintDowncast(176, value);\n        }\n        return uint176(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint168 from uint256, reverting on\n     * overflow (when the input is greater than largest uint168).\n     *\n     * Counterpart to Solidity's `uint168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     */\n    function toUint168(uint256 value) internal pure returns (uint168) {\n        if (value > type(uint168).max) {\n            revert SafeCastOverflowedUintDowncast(168, value);\n        }\n        return uint168(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint160 from uint256, reverting on\n     * overflow (when the input is greater than largest uint160).\n     *\n     * Counterpart to Solidity's `uint160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     */\n    function toUint160(uint256 value) internal pure returns (uint160) {\n        if (value > type(uint160).max) {\n            revert SafeCastOverflowedUintDowncast(160, value);\n        }\n        return uint160(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint152 from uint256, reverting on\n     * overflow (when the input is greater than largest uint152).\n     *\n     * Counterpart to Solidity's `uint152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     */\n    function toUint152(uint256 value) internal pure returns (uint152) {\n        if (value > type(uint152).max) {\n            revert SafeCastOverflowedUintDowncast(152, value);\n        }\n        return uint152(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint144 from uint256, reverting on\n     * overflow (when the input is greater than largest uint144).\n     *\n     * Counterpart to Solidity's `uint144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     */\n    function toUint144(uint256 value) internal pure returns (uint144) {\n        if (value > type(uint144).max) {\n            revert SafeCastOverflowedUintDowncast(144, value);\n        }\n        return uint144(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint136 from uint256, reverting on\n     * overflow (when the input is greater than largest uint136).\n     *\n     * Counterpart to Solidity's `uint136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     */\n    function toUint136(uint256 value) internal pure returns (uint136) {\n        if (value > type(uint136).max) {\n            revert SafeCastOverflowedUintDowncast(136, value);\n        }\n        return uint136(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint128 from uint256, reverting on\n     * overflow (when the input is greater than largest uint128).\n     *\n     * Counterpart to Solidity's `uint128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     */\n    function toUint128(uint256 value) internal pure returns (uint128) {\n        if (value > type(uint128).max) {\n            revert SafeCastOverflowedUintDowncast(128, value);\n        }\n        return uint128(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint120 from uint256, reverting on\n     * overflow (when the input is greater than largest uint120).\n     *\n     * Counterpart to Solidity's `uint120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     */\n    function toUint120(uint256 value) internal pure returns (uint120) {\n        if (value > type(uint120).max) {\n            revert SafeCastOverflowedUintDowncast(120, value);\n        }\n        return uint120(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint112 from uint256, reverting on\n     * overflow (when the input is greater than largest uint112).\n     *\n     * Counterpart to Solidity's `uint112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     */\n    function toUint112(uint256 value) internal pure returns (uint112) {\n        if (value > type(uint112).max) {\n            revert SafeCastOverflowedUintDowncast(112, value);\n        }\n        return uint112(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint104 from uint256, reverting on\n     * overflow (when the input is greater than largest uint104).\n     *\n     * Counterpart to Solidity's `uint104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     */\n    function toUint104(uint256 value) internal pure returns (uint104) {\n        if (value > type(uint104).max) {\n            revert SafeCastOverflowedUintDowncast(104, value);\n        }\n        return uint104(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint96 from uint256, reverting on\n     * overflow (when the input is greater than largest uint96).\n     *\n     * Counterpart to Solidity's `uint96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     */\n    function toUint96(uint256 value) internal pure returns (uint96) {\n        if (value > type(uint96).max) {\n            revert SafeCastOverflowedUintDowncast(96, value);\n        }\n        return uint96(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint88 from uint256, reverting on\n     * overflow (when the input is greater than largest uint88).\n     *\n     * Counterpart to Solidity's `uint88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     */\n    function toUint88(uint256 value) internal pure returns (uint88) {\n        if (value > type(uint88).max) {\n            revert SafeCastOverflowedUintDowncast(88, value);\n        }\n        return uint88(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint80 from uint256, reverting on\n     * overflow (when the input is greater than largest uint80).\n     *\n     * Counterpart to Solidity's `uint80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     */\n    function toUint80(uint256 value) internal pure returns (uint80) {\n        if (value > type(uint80).max) {\n            revert SafeCastOverflowedUintDowncast(80, value);\n        }\n        return uint80(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint72 from uint256, reverting on\n     * overflow (when the input is greater than largest uint72).\n     *\n     * Counterpart to Solidity's `uint72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     */\n    function toUint72(uint256 value) internal pure returns (uint72) {\n        if (value > type(uint72).max) {\n            revert SafeCastOverflowedUintDowncast(72, value);\n        }\n        return uint72(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint64 from uint256, reverting on\n     * overflow (when the input is greater than largest uint64).\n     *\n     * Counterpart to Solidity's `uint64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     */\n    function toUint64(uint256 value) internal pure returns (uint64) {\n        if (value > type(uint64).max) {\n            revert SafeCastOverflowedUintDowncast(64, value);\n        }\n        return uint64(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint56 from uint256, reverting on\n     * overflow (when the input is greater than largest uint56).\n     *\n     * Counterpart to Solidity's `uint56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     */\n    function toUint56(uint256 value) internal pure returns (uint56) {\n        if (value > type(uint56).max) {\n            revert SafeCastOverflowedUintDowncast(56, value);\n        }\n        return uint56(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint48 from uint256, reverting on\n     * overflow (when the input is greater than largest uint48).\n     *\n     * Counterpart to Solidity's `uint48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     */\n    function toUint48(uint256 value) internal pure returns (uint48) {\n        if (value > type(uint48).max) {\n            revert SafeCastOverflowedUintDowncast(48, value);\n        }\n        return uint48(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint40 from uint256, reverting on\n     * overflow (when the input is greater than largest uint40).\n     *\n     * Counterpart to Solidity's `uint40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     */\n    function toUint40(uint256 value) internal pure returns (uint40) {\n        if (value > type(uint40).max) {\n            revert SafeCastOverflowedUintDowncast(40, value);\n        }\n        return uint40(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint32 from uint256, reverting on\n     * overflow (when the input is greater than largest uint32).\n     *\n     * Counterpart to Solidity's `uint32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     */\n    function toUint32(uint256 value) internal pure returns (uint32) {\n        if (value > type(uint32).max) {\n            revert SafeCastOverflowedUintDowncast(32, value);\n        }\n        return uint32(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint24 from uint256, reverting on\n     * overflow (when the input is greater than largest uint24).\n     *\n     * Counterpart to Solidity's `uint24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     */\n    function toUint24(uint256 value) internal pure returns (uint24) {\n        if (value > type(uint24).max) {\n            revert SafeCastOverflowedUintDowncast(24, value);\n        }\n        return uint24(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint16 from uint256, reverting on\n     * overflow (when the input is greater than largest uint16).\n     *\n     * Counterpart to Solidity's `uint16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     */\n    function toUint16(uint256 value) internal pure returns (uint16) {\n        if (value > type(uint16).max) {\n            revert SafeCastOverflowedUintDowncast(16, value);\n        }\n        return uint16(value);\n    }\n\n    /**\n     * @dev Returns the downcasted uint8 from uint256, reverting on\n     * overflow (when the input is greater than largest uint8).\n     *\n     * Counterpart to Solidity's `uint8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     */\n    function toUint8(uint256 value) internal pure returns (uint8) {\n        if (value > type(uint8).max) {\n            revert SafeCastOverflowedUintDowncast(8, value);\n        }\n        return uint8(value);\n    }\n\n    /**\n     * @dev Converts a signed int256 into an unsigned uint256.\n     *\n     * Requirements:\n     *\n     * - input must be greater than or equal to 0.\n     */\n    function toUint256(int256 value) internal pure returns (uint256) {\n        if (value < 0) {\n            revert SafeCastOverflowedIntToUint(value);\n        }\n        return uint256(value);\n    }\n\n    /**\n     * @dev Returns the downcasted int248 from int256, reverting on\n     * overflow (when the input is less than smallest int248 or\n     * greater than largest int248).\n     *\n     * Counterpart to Solidity's `int248` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 248 bits\n     */\n    function toInt248(int256 value) internal pure returns (int248 downcasted) {\n        downcasted = int248(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(248, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int240 from int256, reverting on\n     * overflow (when the input is less than smallest int240 or\n     * greater than largest int240).\n     *\n     * Counterpart to Solidity's `int240` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 240 bits\n     */\n    function toInt240(int256 value) internal pure returns (int240 downcasted) {\n        downcasted = int240(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(240, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int232 from int256, reverting on\n     * overflow (when the input is less than smallest int232 or\n     * greater than largest int232).\n     *\n     * Counterpart to Solidity's `int232` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 232 bits\n     */\n    function toInt232(int256 value) internal pure returns (int232 downcasted) {\n        downcasted = int232(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(232, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int224 from int256, reverting on\n     * overflow (when the input is less than smallest int224 or\n     * greater than largest int224).\n     *\n     * Counterpart to Solidity's `int224` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 224 bits\n     */\n    function toInt224(int256 value) internal pure returns (int224 downcasted) {\n        downcasted = int224(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(224, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int216 from int256, reverting on\n     * overflow (when the input is less than smallest int216 or\n     * greater than largest int216).\n     *\n     * Counterpart to Solidity's `int216` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 216 bits\n     */\n    function toInt216(int256 value) internal pure returns (int216 downcasted) {\n        downcasted = int216(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(216, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int208 from int256, reverting on\n     * overflow (when the input is less than smallest int208 or\n     * greater than largest int208).\n     *\n     * Counterpart to Solidity's `int208` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 208 bits\n     */\n    function toInt208(int256 value) internal pure returns (int208 downcasted) {\n        downcasted = int208(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(208, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int200 from int256, reverting on\n     * overflow (when the input is less than smallest int200 or\n     * greater than largest int200).\n     *\n     * Counterpart to Solidity's `int200` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 200 bits\n     */\n    function toInt200(int256 value) internal pure returns (int200 downcasted) {\n        downcasted = int200(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(200, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int192 from int256, reverting on\n     * overflow (when the input is less than smallest int192 or\n     * greater than largest int192).\n     *\n     * Counterpart to Solidity's `int192` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 192 bits\n     */\n    function toInt192(int256 value) internal pure returns (int192 downcasted) {\n        downcasted = int192(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(192, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int184 from int256, reverting on\n     * overflow (when the input is less than smallest int184 or\n     * greater than largest int184).\n     *\n     * Counterpart to Solidity's `int184` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 184 bits\n     */\n    function toInt184(int256 value) internal pure returns (int184 downcasted) {\n        downcasted = int184(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(184, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int176 from int256, reverting on\n     * overflow (when the input is less than smallest int176 or\n     * greater than largest int176).\n     *\n     * Counterpart to Solidity's `int176` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 176 bits\n     */\n    function toInt176(int256 value) internal pure returns (int176 downcasted) {\n        downcasted = int176(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(176, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int168 from int256, reverting on\n     * overflow (when the input is less than smallest int168 or\n     * greater than largest int168).\n     *\n     * Counterpart to Solidity's `int168` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 168 bits\n     */\n    function toInt168(int256 value) internal pure returns (int168 downcasted) {\n        downcasted = int168(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(168, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int160 from int256, reverting on\n     * overflow (when the input is less than smallest int160 or\n     * greater than largest int160).\n     *\n     * Counterpart to Solidity's `int160` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 160 bits\n     */\n    function toInt160(int256 value) internal pure returns (int160 downcasted) {\n        downcasted = int160(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(160, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int152 from int256, reverting on\n     * overflow (when the input is less than smallest int152 or\n     * greater than largest int152).\n     *\n     * Counterpart to Solidity's `int152` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 152 bits\n     */\n    function toInt152(int256 value) internal pure returns (int152 downcasted) {\n        downcasted = int152(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(152, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int144 from int256, reverting on\n     * overflow (when the input is less than smallest int144 or\n     * greater than largest int144).\n     *\n     * Counterpart to Solidity's `int144` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 144 bits\n     */\n    function toInt144(int256 value) internal pure returns (int144 downcasted) {\n        downcasted = int144(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(144, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int136 from int256, reverting on\n     * overflow (when the input is less than smallest int136 or\n     * greater than largest int136).\n     *\n     * Counterpart to Solidity's `int136` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 136 bits\n     */\n    function toInt136(int256 value) internal pure returns (int136 downcasted) {\n        downcasted = int136(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(136, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int128 from int256, reverting on\n     * overflow (when the input is less than smallest int128 or\n     * greater than largest int128).\n     *\n     * Counterpart to Solidity's `int128` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 128 bits\n     */\n    function toInt128(int256 value) internal pure returns (int128 downcasted) {\n        downcasted = int128(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(128, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int120 from int256, reverting on\n     * overflow (when the input is less than smallest int120 or\n     * greater than largest int120).\n     *\n     * Counterpart to Solidity's `int120` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 120 bits\n     */\n    function toInt120(int256 value) internal pure returns (int120 downcasted) {\n        downcasted = int120(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(120, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int112 from int256, reverting on\n     * overflow (when the input is less than smallest int112 or\n     * greater than largest int112).\n     *\n     * Counterpart to Solidity's `int112` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 112 bits\n     */\n    function toInt112(int256 value) internal pure returns (int112 downcasted) {\n        downcasted = int112(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(112, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int104 from int256, reverting on\n     * overflow (when the input is less than smallest int104 or\n     * greater than largest int104).\n     *\n     * Counterpart to Solidity's `int104` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 104 bits\n     */\n    function toInt104(int256 value) internal pure returns (int104 downcasted) {\n        downcasted = int104(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(104, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int96 from int256, reverting on\n     * overflow (when the input is less than smallest int96 or\n     * greater than largest int96).\n     *\n     * Counterpart to Solidity's `int96` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 96 bits\n     */\n    function toInt96(int256 value) internal pure returns (int96 downcasted) {\n        downcasted = int96(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(96, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int88 from int256, reverting on\n     * overflow (when the input is less than smallest int88 or\n     * greater than largest int88).\n     *\n     * Counterpart to Solidity's `int88` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 88 bits\n     */\n    function toInt88(int256 value) internal pure returns (int88 downcasted) {\n        downcasted = int88(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(88, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int80 from int256, reverting on\n     * overflow (when the input is less than smallest int80 or\n     * greater than largest int80).\n     *\n     * Counterpart to Solidity's `int80` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 80 bits\n     */\n    function toInt80(int256 value) internal pure returns (int80 downcasted) {\n        downcasted = int80(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(80, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int72 from int256, reverting on\n     * overflow (when the input is less than smallest int72 or\n     * greater than largest int72).\n     *\n     * Counterpart to Solidity's `int72` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 72 bits\n     */\n    function toInt72(int256 value) internal pure returns (int72 downcasted) {\n        downcasted = int72(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(72, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int64 from int256, reverting on\n     * overflow (when the input is less than smallest int64 or\n     * greater than largest int64).\n     *\n     * Counterpart to Solidity's `int64` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 64 bits\n     */\n    function toInt64(int256 value) internal pure returns (int64 downcasted) {\n        downcasted = int64(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(64, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int56 from int256, reverting on\n     * overflow (when the input is less than smallest int56 or\n     * greater than largest int56).\n     *\n     * Counterpart to Solidity's `int56` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 56 bits\n     */\n    function toInt56(int256 value) internal pure returns (int56 downcasted) {\n        downcasted = int56(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(56, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int48 from int256, reverting on\n     * overflow (when the input is less than smallest int48 or\n     * greater than largest int48).\n     *\n     * Counterpart to Solidity's `int48` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 48 bits\n     */\n    function toInt48(int256 value) internal pure returns (int48 downcasted) {\n        downcasted = int48(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(48, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int40 from int256, reverting on\n     * overflow (when the input is less than smallest int40 or\n     * greater than largest int40).\n     *\n     * Counterpart to Solidity's `int40` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 40 bits\n     */\n    function toInt40(int256 value) internal pure returns (int40 downcasted) {\n        downcasted = int40(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(40, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int32 from int256, reverting on\n     * overflow (when the input is less than smallest int32 or\n     * greater than largest int32).\n     *\n     * Counterpart to Solidity's `int32` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 32 bits\n     */\n    function toInt32(int256 value) internal pure returns (int32 downcasted) {\n        downcasted = int32(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(32, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int24 from int256, reverting on\n     * overflow (when the input is less than smallest int24 or\n     * greater than largest int24).\n     *\n     * Counterpart to Solidity's `int24` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 24 bits\n     */\n    function toInt24(int256 value) internal pure returns (int24 downcasted) {\n        downcasted = int24(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(24, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int16 from int256, reverting on\n     * overflow (when the input is less than smallest int16 or\n     * greater than largest int16).\n     *\n     * Counterpart to Solidity's `int16` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 16 bits\n     */\n    function toInt16(int256 value) internal pure returns (int16 downcasted) {\n        downcasted = int16(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(16, value);\n        }\n    }\n\n    /**\n     * @dev Returns the downcasted int8 from int256, reverting on\n     * overflow (when the input is less than smallest int8 or\n     * greater than largest int8).\n     *\n     * Counterpart to Solidity's `int8` operator.\n     *\n     * Requirements:\n     *\n     * - input must fit into 8 bits\n     */\n    function toInt8(int256 value) internal pure returns (int8 downcasted) {\n        downcasted = int8(value);\n        if (downcasted != value) {\n            revert SafeCastOverflowedIntDowncast(8, value);\n        }\n    }\n\n    /**\n     * @dev Converts an unsigned uint256 into a signed int256.\n     *\n     * Requirements:\n     *\n     * - input must be less than or equal to maxInt256.\n     */\n    function toInt256(uint256 value) internal pure returns (int256) {\n        // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n        if (value > uint256(type(int256).max)) {\n            revert SafeCastOverflowedUintToInt(value);\n        }\n        return int256(value);\n    }\n\n    /**\n     * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n     */\n    function toUint(bool b) internal pure returns (uint256 u) {\n        assembly (\"memory-safe\") {\n            u := iszero(iszero(b))\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Panic.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n *      using Panic for uint256;\n *\n *      // Use any of the declared internal constants\n *      function foo() { Panic.GENERIC.panic(); }\n *\n *      // Alternatively\n *      function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n    /// @dev generic / unspecified error\n    uint256 internal constant GENERIC = 0x00;\n    /// @dev used by the assert() builtin\n    uint256 internal constant ASSERT = 0x01;\n    /// @dev arithmetic underflow or overflow\n    uint256 internal constant UNDER_OVERFLOW = 0x11;\n    /// @dev division or modulo by zero\n    uint256 internal constant DIVISION_BY_ZERO = 0x12;\n    /// @dev enum conversion error\n    uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n    /// @dev invalid encoding in storage\n    uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n    /// @dev empty array pop\n    uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n    /// @dev array out of bounds access\n    uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n    /// @dev resource error (too large allocation or too large array)\n    uint256 internal constant RESOURCE_ERROR = 0x41;\n    /// @dev calling invalid internal function\n    uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n    /// @dev Reverts with a panic code. Recommended to use with\n    /// the internal constants with predefined codes.\n    function panic(uint256 code) internal pure {\n        assembly (\"memory-safe\") {\n            mstore(0x00, 0x4e487b71)\n            mstore(0x20, code)\n            revert(0x1c, 0x24)\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n    bool private _paused;\n\n    /**\n     * @dev Emitted when the pause is triggered by `account`.\n     */\n    event Paused(address account);\n\n    /**\n     * @dev Emitted when the pause is lifted by `account`.\n     */\n    event Unpaused(address account);\n\n    /**\n     * @dev The operation failed because the contract is paused.\n     */\n    error EnforcedPause();\n\n    /**\n     * @dev The operation failed because the contract is not paused.\n     */\n    error ExpectedPause();\n\n    /**\n     * @dev Initializes the contract in unpaused state.\n     */\n    constructor() {\n        _paused = false;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is not paused.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    modifier whenNotPaused() {\n        _requireNotPaused();\n        _;\n    }\n\n    /**\n     * @dev Modifier to make a function callable only when the contract is paused.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    modifier whenPaused() {\n        _requirePaused();\n        _;\n    }\n\n    /**\n     * @dev Returns true if the contract is paused, and false otherwise.\n     */\n    function paused() public view virtual returns (bool) {\n        return _paused;\n    }\n\n    /**\n     * @dev Throws if the contract is paused.\n     */\n    function _requireNotPaused() internal view virtual {\n        if (paused()) {\n            revert EnforcedPause();\n        }\n    }\n\n    /**\n     * @dev Throws if the contract is not paused.\n     */\n    function _requirePaused() internal view virtual {\n        if (!paused()) {\n            revert ExpectedPause();\n        }\n    }\n\n    /**\n     * @dev Triggers stopped state.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _pause() internal virtual whenNotPaused {\n        _paused = true;\n        emit Paused(_msgSender());\n    }\n\n    /**\n     * @dev Returns to normal state.\n     *\n     * Requirements:\n     *\n     * - The contract must be paused.\n     */\n    function _unpause() internal virtual whenPaused {\n        _paused = false;\n        emit Unpaused(_msgSender());\n    }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n *     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(newImplementation.code.length > 0);\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    struct Int256Slot {\n        int256 value;\n    }\n\n    struct StringSlot {\n        string value;\n    }\n\n    struct BytesSlot {\n        bytes value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n     */\n    function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns a `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n     */\n    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n     */\n    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n        assembly (\"memory-safe\") {\n            r.slot := store.slot\n        }\n    }\n}\n"},"contracts/DomainMangager/DomainManager.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\n\n/**\n * @title DomainManager\n * @dev Contract module that implement access\n * control only to owners of a domain in the SCI Registry.\n * @custom:security-contact security@sci.domains\n */\nabstract contract DomainManager {\n    ISciRegistry public immutable registry;\n\n    /**\n     * @dev Thrown when the `account` is not the owner of the domainhash.\n     */\n    error AccountIsNotDomainOwner(address account, bytes32 domainHash);\n\n    /**\n     * @dev Modifier that checks if the provided address is the owner of the SCI domain.\n     * @param domainHash The namehash of the domain.\n     *\n     * Note: Reverts with `AccountIsNotDomainOwner` error if the check fails.\n     */\n    modifier onlyDomainOwner(address account, bytes32 domainHash) {\n        _checkDomainOwner(account, domainHash);\n        _;\n    }\n\n    /**\n     * @dev Initializes the contract with references to the SCI Registry.\n     * @param _sciRegistry Address of the SCI Registry contract.\n     */\n    constructor(address _sciRegistry) {\n        registry = ISciRegistry(_sciRegistry);\n    }\n\n    /**\n     * @dev Reverts with an {AccountIsNotDomainOwner} error if the caller\n     * is not the owner of the domain.\n     * @param domainHash The namehash of the domain.\n     *\n     * Note: Overriding this function changes the behavior of the {onlyDomainOwner} modifier.\n     */\n    function _checkDomainOwner(address account, bytes32 domainHash) private view {\n        if (registry.domainOwner(domainHash) != account) {\n            revert AccountIsNotDomainOwner(account, domainHash);\n        }\n    }\n}\n"},"contracts/Ens/Ens.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n// Only for testing purposes, the SCI smart contract uses the ENS interface.\n/* solhint-disable */\nimport {ENSRegistry} from '@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol';\n"},"contracts/Op/ICrossDomainMessanger.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\n/**\n * @title ICrossDomainMessanger\n * @dev Interface for the Superchain Cross Domain Messenger\n * which facilitates sending messages between a source and a target chain.\n */\ninterface ICrossDomainMessanger {\n    /**\n     * @dev Sends a message to a target contract on a different chain.\n     * @param target The address of the target contract on the destination chain.\n     * @param _message The encoded message data containing function selectors and parameters.\n     * @param gasLimit The maximum amount of gas allocated for executing the message on the target chain.\n     */\n    function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external;\n\n    /**\n     * @dev Retrieves the address of the sender of the cross-domain message.\n     * @return The address of the entity that originated the cross-domain message.\n     */\n    function xDomainMessageSender() external view returns (address);\n}\n"},"contracts/Op/mocks/MockCrossDomainMessenger.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ICrossDomainMessanger} from '../ICrossDomainMessanger.sol';\n/// @dev Mock contract for testing cross-domain messaging functionality.\ncontract MockCrossDomainMessenger is ICrossDomainMessanger {\n    address private xDomainMessageSenderAddress;\n\n    bool public shouldSendMessage;\n\n    event MessageSent(address target, bytes message, uint32 gasLimit);\n\n    constructor(address _xDomainMessageSender, bool _shouldSendMessage) {\n        xDomainMessageSenderAddress = _xDomainMessageSender;\n        shouldSendMessage = _shouldSendMessage;\n    }\n\n    function sendMessage(address target, bytes calldata _message, uint32 gasLimit) external {\n        if (shouldSendMessage) {\n            (bool success, bytes memory result) = target.call{gas: uint256(gasLimit)}(_message);\n\n            if (!success) {\n                // Bubble up the original revert reason if present\n                if (result.length > 0) {\n                    // The easiest way to bubble the reason is using assembly\n                    assembly {\n                        let returndata_size := mload(result)\n                        revert(add(result, 32), returndata_size)\n                    }\n                } else {\n                    revert('Call failed without reason');\n                }\n            }\n        }\n        emit MessageSent(target, _message, gasLimit);\n    }\n\n    function xDomainMessageSender() external view override returns (address) {\n        return xDomainMessageSenderAddress;\n    }\n\n    function setXDomainMessageSenderAddress(address _xDomainMessageSenderAddress) external {\n        xDomainMessageSenderAddress = _xDomainMessageSenderAddress;\n    }\n\n    function setShouldSendMessage(bool _shouldSendMessage) external {\n        shouldSendMessage = _shouldSendMessage;\n    }\n}\n"},"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol';\nimport {ICrossDomainMessanger} from './ICrossDomainMessanger.sol';\n\n/**\n * @title SuperChainAccessControlDefaultAdminRules\n * @dev This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management.\n * @custom:security-contact security@sci.domains\n */\ncontract SuperChainAccessControlDefaultAdminRules is AccessControlDefaultAdminRules {\n    ICrossDomainMessanger public immutable crossDomainMessanger;\n\n    /**\n     * @dev Thrown when the caller is not the cross domain messanger.\n     */\n    error InvalidMessageSender(address account);\n\n    /**\n     * @dev Modifier that checks that an account on a source chain has a specific role.\n     * Reverts with an {AccessControlUnauthorizedAccount} error including the required role.\n     */\n    modifier onlyCrossChainRole(bytes32 role) {\n        if (msg.sender != address(crossDomainMessanger)) {\n            revert InvalidMessageSender(msg.sender);\n        }\n\n        address account = crossDomainMessanger.xDomainMessageSender();\n        if (!hasRole(role, account)) {\n            revert AccessControlUnauthorizedAccount(account, role);\n        }\n        _;\n    }\n\n    /**\n     * @param _crossDomainMessanger Address of the cross-domain messenger contract.\n     * @dev See {AccessControlDefaultAdminRules-constructor}.\n     */\n    constructor(\n        address _crossDomainMessanger,\n        uint48 initialDelay,\n        address initialDefaultAdmin\n    ) AccessControlDefaultAdminRules(initialDelay, initialDefaultAdmin) {\n        crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger);\n    }\n}\n"},"contracts/Proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.28;\n\n// We import these here to force Hardhat to compile them.\n// This ensures that their artifacts are available for Hardhat Ignition to use.\n// solhint-disable no-unused-import\nimport {ProxyAdmin} from '@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol';\nimport {TransparentUpgradeableProxy} from '@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol';\n"},"contracts/Registrars/EnsRegistrar.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ENS} from '@ensdomains/ens-contracts/contracts/registry/ENS.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {SuperChainSourceRegistrar} from './SuperChainSourceRegistrar.sol';\n\n/**\n * @title EnsRegistrar\n * @dev This contract allows owners of an ENS (Ethereum Name Service) domain to register it\n * in the SCI Registry contract.\n * The contract ensures that only the legitimate ENS owner can register a domain\n * by verifying the domain ownership through the ENS contract.\n * @custom:security-contact security@sci.domains\n */\ncontract EnsRegistrar is SuperChainSourceRegistrar {\n    ENS public immutable ensRegistry;\n\n    /**\n     * @dev Thrown when the `account` is not the owner of the ENS `domainhash`.\n     */\n    error AccountIsNotEnsOwner(address account, bytes32 domainHash);\n\n    /**\n     * @dev Modifier that checks if the provided `account` is the owner of the `domainhash`.\n     * @param account Address expected to be the domain owner.\n     * @param domainHash Namehash of the domain.\n     *\n     * Note: Reverts with `AccountIsNotEnsOwner` error if the check fails.\n     */\n    modifier onlyEnsOwner(address account, bytes32 domainHash) {\n        _checkEnsOwner(account, domainHash);\n        _;\n    }\n\n    /**\n     * @dev Initializes the contract with references to the ENS and the SCI Registry.\n     * @param _ensRegistry Address of the ENS Registry contract.\n     * @param _sciRegistry Address of the SCI Registry contract.\n     * @param _crossChainDomainMessagnger Address of the cross-chain domain messenger contract.\n     */\n    constructor(\n        address _ensRegistry,\n        address _sciRegistry,\n        address _crossChainDomainMessagnger\n    ) SuperChainSourceRegistrar(_sciRegistry, _crossChainDomainMessagnger) {\n        ensRegistry = ENS(_ensRegistry);\n    }\n\n    /**\n     * @dev Registers a domain in the SCI Registry contract.\n     * @param owner Address of the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     *\n     * Requirements:\n     *\n     * - The owner must be the ENS owner of the domainHash.\n     */\n    function registerDomain(\n        address owner,\n        bytes32 domainHash\n    ) external onlyEnsOwner(owner, domainHash) {\n        _registerDomainCrossChain(owner, domainHash);\n    }\n\n    /**\n     * @dev Registers a domain with a verifier in the SCI Registry contract.\n     * @param domainHash The namehash of the domain to be registered.\n     * @param verifier Address of the verifier contract.\n     *\n     * Requirements:\n     *\n     * - The caller must be the ENS owner of the domainHash.\n     */\n    function registerDomainWithVerifier(\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external onlyEnsOwner(msg.sender, domainHash) {\n        _registerDomainWithVerifierCrossChain(msg.sender, domainHash, verifier);\n    }\n\n    /**\n     * @dev Private helper function to check if the specified address owns the ENS domain.\n     * @param account Address expected to be the domain owner.\n     * @param domainHash Namehash of the domain.\n     *\n     * Note: Reverts with `AccountIsNotEnsOwner` error if the address is not the owner of the ENS domain.\n     */\n    function _checkEnsOwner(address account, bytes32 domainHash) private view {\n        if (ensRegistry.owner(domainHash) != account) {\n            revert AccountIsNotEnsOwner(account, domainHash);\n        }\n    }\n}\n"},"contracts/Registrars/SciRegistrar.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol';\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\n\n/**\n * @title SciRegistrar\n * @dev This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain\n * in the SCI Registry. This will be use by the SCI team to register domains until the protocol\n * became widly used and we don't need to be registering domains for protocols.\n *\n * The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\n *\n * @custom:security-contact security@sci.domains\n */\ncontract SciRegistrar is AccessControlDefaultAdminRules {\n    // Role that allows registering domains\n    bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE');\n\n    ISciRegistry public immutable registry;\n\n    /**\n     * @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n     * @param _sciRegistry Address of the custom domain registry contract.\n     * @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n     * @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\n     */\n    constructor(\n        address _sciRegistry,\n        uint48 initialDelay,\n        address _initialDefaultAdmin\n    ) AccessControlDefaultAdminRules(initialDelay, _initialDefaultAdmin) {\n        registry = ISciRegistry(_sciRegistry);\n    }\n\n    /**\n     * @dev Registers a domain in the SCI Registry contract.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     *\n     * Requirements:\n     *\n     * - The caller must have the REGISTER_DOMAIN_ROLE role.\n     */\n    function registerDomain(\n        address owner,\n        bytes32 domainHash\n    ) external onlyRole(REGISTER_DOMAIN_ROLE) {\n        registry.registerDomain(owner, domainHash);\n    }\n\n    /**\n     * @dev Registers a domain with a verifier in the SCI Registry contract.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     * @param verifier Address of the verifier contract.\n     *\n     * Requirements:\n     *\n     * - The caller must have the REGISTER_DOMAIN_ROLE role.\n     *\n     * Note: This contract must only be handle by the SCI Team so we assume\n     * it's safe to receive the owner.\n     */\n    function registerDomainWithVerifier(\n        address owner,\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external onlyRole(REGISTER_DOMAIN_ROLE) {\n        registry.registerDomainWithVerifier(owner, domainHash, verifier);\n    }\n}\n"},"contracts/Registrars/SuperChainSourceRegistrar.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {ICrossDomainMessanger} from '../Op//ICrossDomainMessanger.sol';\n\n/**\n * @title SuperChainSourceRegistrar\n * @dev This abstract contract is designed to be inherited by registrar contracts that register domains on a superchain.\n * It provides functionality to register a domain on a different chain via the superchain cross-domain messaging.\n *\n * @custom:security-contact security@sci.domains\n */\nabstract contract SuperChainSourceRegistrar {\n    // Cross-domain messenger contract for sending messages to the target chain.\n    ICrossDomainMessanger public immutable crossDomainMessanger;\n    // The address of the SuperChainTargetRegistrar on the target chain.\n    address public targetRegistrar;\n\n    // Gas limits for cross-domain messages on the target chain.\n    uint32 public constant REGISTER_DOMAIN_GAS_LIMIT = 200000;\n    uint32 public constant REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT = 300000;\n\n    /**\n     * @dev Initializes the contract by setting up the Cross domain messenger and the target registrar.\n     * @param _targetRegistrar The address of the registrar contract on the target chain.\n     * @param _crossDomainMessanger The address of the cross-domain messenger contract.\n     */\n    constructor(address _targetRegistrar, address _crossDomainMessanger) {\n        crossDomainMessanger = ICrossDomainMessanger(_crossDomainMessanger);\n        targetRegistrar = _targetRegistrar;\n    }\n\n    /**\n     * @dev Registers a domain on the target registrar contract via cross-domain messaging.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     */\n    function _registerDomainCrossChain(address owner, bytes32 domainHash) internal {\n        crossDomainMessanger.sendMessage(\n            targetRegistrar,\n            abi.encodeCall(ISciRegistry.registerDomain, (owner, domainHash)),\n            REGISTER_DOMAIN_GAS_LIMIT\n        );\n    }\n\n    /**\n     * @dev Registers a domain with a verifier on the target registrar contract via cross-domain messaging.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     * @param verifier The address of the verifier contract.\n     */\n    function _registerDomainWithVerifierCrossChain(\n        address owner,\n        bytes32 domainHash,\n        IVerifier verifier\n    ) internal {\n        crossDomainMessanger.sendMessage(\n            targetRegistrar,\n            abi.encodeCall(ISciRegistry.registerDomainWithVerifier, (owner, domainHash, verifier)),\n            REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT\n        );\n    }\n}\n"},"contracts/Registrars/SuperChainTargetRegistrar.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {ISciRegistry} from '../SciRegistry/ISciRegistry.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {SuperChainAccessControlDefaultAdminRules} from '../Op/SuperChainAccessControlDefaultAdminRules.sol';\n\n/**\n * @title SuperChainTargetRegistrar\n * @dev This contract allows addresses from the source chain with REGISTER_DOMAIN_ROLE role to register a domain.\n * It uses the superchain cross-domain messaging to \"listen\" for domain registration requests from the source chain.\n *\n * @custom:security-contact security@sci.domains\n */\ncontract SuperChainTargetRegistrar is SuperChainAccessControlDefaultAdminRules {\n    // Role that allows registering domains\n    bytes32 public constant REGISTER_DOMAIN_ROLE = keccak256('REGISTER_DOMAIN_ROLE');\n\n    ISciRegistry public immutable registry;\n\n    /**\n     * @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n     * @param _sciRegistry Address of the custom domain registry contract.\n     * @param _crossDomainMessanger Address of the cross-domain messenger contract.\n     * @param _initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n     * @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\n     */\n    constructor(\n        address _sciRegistry,\n        address _crossDomainMessanger,\n        uint48 _initialDelay,\n        address _initialDefaultAdmin\n    )\n        SuperChainAccessControlDefaultAdminRules(\n            _crossDomainMessanger,\n            _initialDelay,\n            _initialDefaultAdmin\n        )\n    {\n        registry = ISciRegistry(_sciRegistry);\n    }\n\n    /**\n     * @dev Registers a domain in the SCI Registry contract.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     *\n     * Requirements:\n     *\n     * - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role.\n     * - The caller must be the superchain cross domain messanger\n     */\n    function registerDomain(\n        address owner,\n        bytes32 domainHash\n    ) external onlyCrossChainRole(REGISTER_DOMAIN_ROLE) {\n        registry.registerDomain(owner, domainHash);\n    }\n\n    /**\n     * @dev Registers a domain with a verifier in the SCI Registry contract.\n     * @param owner Address expected to be the domain owner.\n     * @param domainHash The namehash of the domain to be registered.\n     * @param verifier Address of the verifier contract.\n     *\n     * Requirements:\n     *\n     * - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role.\n     * - The caller must be the superchain cross domain messanger\n     */\n    function registerDomainWithVerifier(\n        address owner,\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external onlyCrossChainRole(REGISTER_DOMAIN_ROLE) {\n        registry.registerDomainWithVerifier(owner, domainHash, verifier);\n    }\n}\n"},"contracts/SCI.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from './Verifiers/IVerifier.sol';\nimport {ISciRegistry} from './SciRegistry/ISciRegistry.sol';\nimport {Initializable} from '@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol';\nimport {Ownable2StepUpgradeable} from '@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol';\n\n/**\n * @title SCI\n * @dev This contract facilitates interaction with the SCI protocol, offering a simplified interface\n * for apps and wallets. Apps and wallets can also directly interact with the\n * Registry and verifiers directly if desired, bypassing this contract.\n * @custom:security-contact security@sci.domains\n */\ncontract SCI is Initializable, Ownable2StepUpgradeable {\n    ISciRegistry public registry;\n\n    /**\n     *  @dev Emitted when the Registry is changed.\n     */\n    event RegistrySet(address indexed oldRegistryAddress, address indexed newRegistryAddress);\n\n    /**\n     * @dev Initializes the SCI contract with the owner and registry address.\n     * Can only be called once during contract deployment.\n     *\n     * @param owner The owner of this contract.\n     */\n    function initialize(address owner) external initializer {\n        __Ownable2Step_init();\n        __Ownable_init(owner);\n    }\n\n    /**\n     * @dev Returns info from the domain.\n     *\n     * @param domainHash The namehash of the domain.\n     */\n    function domainHashToRecord(\n        bytes32 domainHash\n    )\n        external\n        view\n        returns (\n            address owner,\n            IVerifier verifier,\n            uint256 lastOwnerSetTime,\n            uint256 lastVerifierSetTime\n        )\n    {\n        return registry.domainHashToRecord(domainHash);\n    }\n\n    /**\n     * @dev Same as isVerifiedForDomainHash but for multiple domains.\n     *\n     * @param domainHashes An array of domain hashes.\n     * @param contractAddress The address of the contract is being verified.\n     * @param chainId The id of the chain the contract is deployed in.\n     * @return an array of uint256 representing the time when the contract was verified for each domain\n     * or 0 if it wasn't.\n     *\n     * Note: If there is no verifier set then it returns false for that `domainHash`.\n     */\n    function isVerifiedForMultipleDomainHashes(\n        bytes32[] memory domainHashes,\n        address contractAddress,\n        uint256 chainId\n    ) external view returns (uint256[] memory) {\n        uint256[] memory domainsVerification = new uint256[](domainHashes.length);\n        uint256 domainHashesLength = domainHashes.length;\n        for (uint256 i; i < domainHashesLength; ) {\n            domainsVerification[i] = isVerifiedForDomainHash(\n                domainHashes[i],\n                contractAddress,\n                chainId\n            );\n            unchecked {\n                ++i;\n            }\n        }\n        return domainsVerification;\n    }\n\n    /**\n     * @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified.\n     * to interact with the domain with namehash `domainHash`.\n     * @param domainHash The namehash of the domain the contract is interacting with\n     * @param contractAddress The address of the contract is being verified.\n     * @param chainId The id of the chain the contract is deployed in.\n     * @return a uint256 representing the time when the contract was verified.\n     * If the contract is not verified, it returns 0.\n     *\n     * Note: If there is no verifier set then it returns 0.\n     */\n    function isVerifiedForDomainHash(\n        bytes32 domainHash,\n        address contractAddress,\n        uint256 chainId\n    ) public view returns (uint256) {\n        (, IVerifier verifier, , ) = registry.domainHashToRecord(domainHash);\n\n        if (address(verifier) == address(0)) {\n            return 0;\n        }\n\n        return verifier.isVerified(domainHash, contractAddress, chainId);\n    }\n\n    /**\n     * @dev Sets a new registry.\n     *\n     * @param newRegistry The address of the new SCI Registry.\n     *\n     * May emit a {RegistrySet} event.\n     */\n    function setRegistry(address newRegistry) public onlyOwner {\n        address oldRegistryAddress = address(registry);\n        registry = ISciRegistry(newRegistry);\n        emit RegistrySet(oldRegistryAddress, newRegistry);\n    }\n}\n"},"contracts/SciRegistry/ISciRegistry.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\n\n/**\n * @title ISciRegistry\n * @dev This contract manages domain registration and verifiers. It uses role-based access control to allow\n * only authorized accounts to register domains and update verifiers.\n * The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\n * @custom:security-contact security@sci.domains\n */\ninterface ISciRegistry {\n    /**\n     * @dev Emitted when a new `domain` with the `domainHash` is\n     * registered by the `owner`.\n     */\n    event DomainRegistered(\n        address indexed registrar,\n        address indexed owner,\n        bytes32 indexed domainHash\n    );\n\n    /**\n     * @dev Emitted when the `owner` of the `domainHash` adds a `verifier`.\n     *\n     * Note: This will also be emitted when the verifier is changed.\n     */\n    event VerifierSet(\n        address msgSender,\n        bytes32 indexed domainHash,\n        IVerifier indexed oldVerifier,\n        IVerifier indexed newVerifie\n    );\n\n    /**\n     * @dev Emitted when the owner of a `domainHash` is set.\n     *\n     */\n    event OwnerSet(\n        address msgSender,\n        bytes32 indexed domainHash,\n        address indexed oldOwner,\n        address indexed newOwner\n    );\n\n    /**\n     * @dev Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime\n     * for a given domainHash.\n     * @param domainHash The namehash of the domain.\n     */\n    function domainHashToRecord(\n        bytes32 domainHash\n    )\n        external\n        view\n        returns (\n            address owner,\n            IVerifier verifier,\n            uint256 lastOwnerSetTime,\n            uint256 lastIVerifierSetTime\n        );\n\n    /**\n     * @dev Register a domain.\n     *\n     * @param owner The owner of the domain.\n     * @param domainHash The namehash of the domain being registered.\n     *\n     * Requirements:\n     *\n     * - Only valid Registrars must be able to call this function.\n     *\n     * May emit a {DomainRegistered} event.\n     */\n    function registerDomain(address owner, bytes32 domainHash) external;\n\n    /**\n     * @dev Same as registerDomain but it also adds a IVerifier.\n     *\n     * @param owner The owner of the domain being registered.\n     * @param domainHash The namehash of the domain being registered.\n     * @param verifier The verifier that is being set for the domain.\n     *\n     * Requirements:\n     *\n     * - Only valid Registrars must be able to call this function.\n     *\n     * Note: Most of registrars should implement this function by sending\n     * the message sender as the owner to avoid other addresses changing or setting\n     * a malicous verifier.\n     *\n     * May emit a {DomainRegistered} and a {IVerifierAdded} events.\n     */\n    function registerDomainWithVerifier(\n        address owner,\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external;\n\n    /**\n     * @dev Returns true if the account is the owner of the domainHash.\n     */\n    function isDomainOwner(bytes32 domainHash, address account) external view returns (bool);\n\n    /**\n     * @dev Returns the owner of the domainHash.\n     * @param domainHash The namehash of the domain.\n     * @return The address of the owner or the ZERO_ADDRESS if the domain is not registered.\n     */\n    function domainOwner(bytes32 domainHash) external view returns (address);\n\n    /**\n     * @dev Returns the IVerifier of the domainHash.\n     * @param domainHash The namehash of the domain.\n     * @return The address of the IVerifier or the ZERO_ADDRESS if the domain or\n     * the IVerifier are not registered.\n     */\n    function domainVerifier(bytes32 domainHash) external view returns (IVerifier);\n\n    /**\n     * @dev Returns the timestamp of the block where the IVerifier was set.\n     * @param domainHash The namehash of the domain.\n     * @return The timestamp of the block where the IVerifier was set or\n     * 0 if it wasn't.\n     */\n    function domainVerifierSetTime(bytes32 domainHash) external view returns (uint256);\n\n    /**\n     * @dev Sets a IVerifier to the domain hash.\n     * @param domainHash The namehash of the domain.\n     * @param verifier The address of the IVerifier contract.\n     *\n     * Requirements:\n     *\n     * - the caller must be the owner of the domain.\n     *\n     * May emit a {IVerifierAdded} event.\n     *\n     * Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS.\n     */\n    function setVerifier(bytes32 domainHash, IVerifier verifier) external;\n}\n"},"contracts/SciRegistry/SciRegistry.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {Pausable} from '@openzeppelin/contracts/utils/Pausable.sol';\nimport {AccessControlDefaultAdminRules} from '@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol';\nimport {IVerifier} from '../Verifiers/IVerifier.sol';\nimport {ISciRegistry} from './ISciRegistry.sol';\nimport {DomainManager} from '../DomainMangager/DomainManager.sol';\n\n/**\n * @title Registry\n * @dev See {ISciRegistry}.\n * @custom:security-contact security@sci.domains\n */\ncontract SciRegistry is ISciRegistry, AccessControlDefaultAdminRules, DomainManager, Pausable {\n    /**\n     * @dev Structure to hold domain record details, including:\n     * - owner: Address of the domain owner.\n     * - verifier: Address of the verifier contract associated with the domain.\n     * - ownerSetTime: Timestamp of when the domain owner was last set.\n     * - verifierSetTime: Timestamp of when the verifier was last set.\n     */\n    struct Record {\n        address owner;\n        IVerifier verifier;\n        uint256 ownerSetTime;\n        uint256 verifierSetTime;\n    }\n\n    // Role that allows managing registrar roles.\n    bytes32 public constant REGISTRAR_MANAGER_ROLE = keccak256('REGISTRAR_MANAGER_ROLE');\n    // Role that allows registering domains.\n    bytes32 public constant REGISTRAR_ROLE = keccak256('REGISTRAR_ROLE');\n    // Role that allows to pause the contract.\n    bytes32 public constant PAUSER_ROLE = keccak256('PAUSER_ROLE');\n\n    /**\n     * @dev Maps the namehash of a domain to a Record.\n     */\n    mapping(bytes32 nameHash => Record domain) public domainHashToRecord;\n\n    /**\n     * @dev Constructor to initialize the Registry contract.\n     * Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\n     * @param _initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n     * @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\n     */\n    constructor(\n        uint48 _initialDelay,\n        address _initialDefaultAdmin\n    )\n        AccessControlDefaultAdminRules(_initialDelay, _initialDefaultAdmin)\n        DomainManager(address(this))\n    {\n        _setRoleAdmin(REGISTRAR_ROLE, REGISTRAR_MANAGER_ROLE);\n    }\n\n    /**\n     * @dev See {ISciRegistry-registerDomain}.\n     */\n    function registerDomain(address owner, bytes32 domainHash) external {\n        _registerDomain(owner, domainHash);\n    }\n\n    /**\n     * @dev See {ISciRegistry-registerDomainWithVerifier}.\n     */\n    function registerDomainWithVerifier(\n        address owner,\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external {\n        _registerDomain(owner, domainHash);\n        _setVerifier(domainHash, verifier);\n    }\n\n    /**\n     * @dev Pauses registering a domain and setting a verifier.\n     */\n    function pause() external onlyRole(PAUSER_ROLE) {\n        _pause();\n    }\n\n    /**\n     * @dev Unpauses registering a domain and setting a verifier.\n     */\n    function unpause() external onlyRole(PAUSER_ROLE) {\n        _unpause();\n    }\n\n    /**\n     * @dev See {ISciRegistry-isDomainOwner}.\n     */\n    function isDomainOwner(\n        bytes32 domainHash,\n        address account\n    ) external view virtual override returns (bool) {\n        return domainOwner(domainHash) == account;\n    }\n\n    /**\n     * @dev See {ISciRegistry-setVerifier}.\n     */\n    function setVerifier(\n        bytes32 domainHash,\n        IVerifier verifier\n    ) external onlyDomainOwner(msg.sender, domainHash) {\n        _setVerifier(domainHash, verifier);\n    }\n\n    /**\n     * @dev See {ISciRegistry-domainVerifier}.\n     */\n    function domainVerifier(bytes32 domainHash) external view virtual returns (IVerifier) {\n        return domainHashToRecord[domainHash].verifier;\n    }\n\n    /**\n     * @dev See {ISciRegistry-domainVerifierSetTime}.\n     */\n    function domainVerifierSetTime(bytes32 domainHash) external view virtual returns (uint256) {\n        return domainHashToRecord[domainHash].verifierSetTime;\n    }\n\n    /**\n     * @dev Grants a role to an account.\n     * @param role The role to grant.\n     * @param account The account receiving the role.\n     *\n     * Note: Overrides the OpenZeppelin function to require the\n     * caller to have the admin role for the role being granted.\n     */\n    function grantRole(bytes32 role, address account) public override onlyRole(getRoleAdmin(role)) {\n        _grantRole(role, account);\n    }\n\n    /**\n     * @dev See {ISciRegistry-domainOwner}.\n     */\n    function domainOwner(bytes32 domainHash) public view virtual override returns (address) {\n        return domainHashToRecord[domainHash].owner;\n    }\n\n    /**\n     * @dev Base function to register a domain.\n     *\n     * @param owner The owner of the domain.\n     * @param domainHash The namehash of the domain being registered.\n     *\n     * Requirements:\n     *\n     * - the owner must be authorized by the authorizer.\n     * - The contract must not be paused.\n     *\n     * May emit a {DomainRegistered} event.\n     */\n    function _registerDomain(\n        address owner,\n        bytes32 domainHash\n    ) private onlyRole(REGISTRAR_ROLE) whenNotPaused {\n        _setDomainOwner(domainHash, owner);\n        emit DomainRegistered(msg.sender, owner, domainHash);\n    }\n\n    /**\n     * @dev Sets the verifier, updates the verifier timestamp and\n     * emits VerifierSet events.\n     * All updates to a verifier should be through this function.\n     *\n     * Requirements:\n     *\n     * - The contract must not be paused.\n     */\n    function _setVerifier(bytes32 domainHash, IVerifier verifier) private whenNotPaused {\n        IVerifier oldVerifier = domainHashToRecord[domainHash].verifier;\n        domainHashToRecord[domainHash].verifier = verifier;\n        domainHashToRecord[domainHash].verifierSetTime = block.timestamp;\n        emit VerifierSet(msg.sender, domainHash, oldVerifier, verifier);\n    }\n\n    /**\n     * @dev Sets the owner of a domain,\n     * All updates to an owner should be through this function.\n     */\n    function _setDomainOwner(bytes32 domainHash, address owner) private {\n        address oldOwner = domainHashToRecord[domainHash].owner;\n        domainHashToRecord[domainHash].owner = owner;\n        domainHashToRecord[domainHash].ownerSetTime = block.timestamp;\n        emit OwnerSet(msg.sender, domainHash, oldOwner, owner);\n    }\n}\n"},"contracts/Verifiers/IVerifier.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\n/**\n * @title IVerifier\n * @dev Required interface of a Verifier compliant contract for the SCI Registry.\n * @custom:security-contact security@sci.domains\n */\ninterface IVerifier {\n    /**\n     * @dev Verifies if a contract in a specific chain is authorized\n     * to interact within a domain.\n     * @param domainHash The domain's namehash.\n     * @param contractAddress The address of the contract trying to be verified.\n     * @param chainId The chain where the contract is deployed.\n     * @return a uint256 representing the time when the contract was verified.\n     * If the contract is not verified, it returns 0.\n     *\n     * Note: The return timestamp is a best effor approach to provide the time when the contract\n     * was verified. For verifiers that can't know when the contract was verified they could\n     * return when the verifier was deployed.\n     */\n    function isVerified(\n        bytes32 domainHash,\n        address contractAddress,\n        uint256 chainId\n    ) external view returns (uint256);\n}\n"},"contracts/Verifiers/PublicListVerifier.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\npragma solidity 0.8.28;\n\nimport {IVerifier} from './IVerifier.sol';\nimport {DomainManager} from '../DomainMangager/DomainManager.sol';\n\n/**\n * @title PublicListVerifier\n * @dev This contract implements the Verifier interface.\n * Domain owners can add or remove addresses that can interact within their domain.\n *\n * If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes\n * this contract is verified for all chains for that domain.\n * @custom:security-contact security@sci.domains\n */\ncontract PublicListVerifier is IVerifier, DomainManager {\n    uint256 private constant MAX_INT = 2 ** 256 - 1;\n\n    // Domain hash -> contract address -> chain id -> true/false.\n    mapping(bytes32 domainHash => mapping(address contractAddress => mapping(uint256 chainId => uint256 registerTimestamp)))\n        public verifiedContracts;\n\n    /**\n     *  @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`.\n     */\n    event AddressRemoved(\n        bytes32 indexed domainHash,\n        uint256 indexed chainId,\n        address indexed contractAddress,\n        address msgSender\n    );\n\n    /**\n     *  @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`.\n     */\n    event AddressAdded(\n        bytes32 indexed domainHash,\n        uint256 indexed chainId,\n        address indexed contractAddress,\n        address msgSender\n    );\n\n    constructor(address _registry) DomainManager(_registry) {}\n\n    /**\n     * @dev Adds multiple addresses in multiple chains to the domain.\n     *\n     * Requirements:\n     *\n     * - The caller must be the owner of the domain.\n     */\n    function addAddresses(\n        bytes32 domainHash,\n        address[] calldata contractAddresses,\n        uint256[][] calldata chainIds\n    ) external onlyDomainOwner(msg.sender, domainHash) {\n        for (uint256 i; i < contractAddresses.length; ) {\n            for (uint256 j; j < chainIds[i].length; ) {\n                verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = block\n                    .timestamp;\n                emit AddressAdded(domainHash, chainIds[i][j], contractAddresses[i], msg.sender);\n                unchecked {\n                    ++j;\n                }\n            }\n            unchecked {\n                ++i;\n            }\n        }\n    }\n\n    /**\n     * @dev Removes multiple addresses in multiple chains to the domain.\n     *\n     * Requirements:\n     *\n     * - The caller must be the owner of the domain.\n     */\n    function removeAddresses(\n        bytes32 domainHash,\n        address[] calldata contractAddresses,\n        uint256[][] calldata chainIds\n    ) external onlyDomainOwner(msg.sender, domainHash) {\n        for (uint256 i; i < contractAddresses.length; ) {\n            for (uint256 j; j < chainIds[i].length; ++j) {\n                verifiedContracts[domainHash][contractAddresses[i]][chainIds[i][j]] = 0;\n                emit AddressRemoved(domainHash, chainIds[i][j], contractAddresses[i], msg.sender);\n                unchecked {\n                    ++j;\n                }\n            }\n            unchecked {\n                ++i;\n            }\n        }\n    }\n\n    /**\n     * @dev See {IVerifier-isVerified}.\n     */\n    function isVerified(\n        bytes32 domainHash,\n        address contractAddress,\n        uint256 chainId\n    ) external view returns (uint256) {\n        uint256 verifiedContract = verifiedContracts[domainHash][contractAddress][chainId];\n\n        if (verifiedContract != 0) {\n            return verifiedContract;\n        }\n\n        verifiedContract = verifiedContracts[domainHash][contractAddress][MAX_INT];\n        if (verifiedContract != 0) {\n            return verifiedContract;\n        }\n\n        // Return 0 if no match is found\n        return 0;\n    }\n}\n"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","storageLayout"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"1878","formattedMessage":"Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\n\n","message":"SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.","severity":"warning","sourceLocation":{"end":-1,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:20:9:\n   |\n20 |         address owner = records[node].owner;\n   |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":443,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":430},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:41:9:\n   |\n41 |         address owner,\n   |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":991,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":978},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:42:9:\n   |\n42 |         address resolver,\n   |         ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n    |\n159 |     function resolver(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4814,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4675}],"severity":"warning","sourceLocation":{"end":1017,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":1001},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:43:9:\n   |\n43 |         uint64 ttl\n   |         ^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n    |\n170 |     function ttl(bytes32 node) public view virtual override returns (uint64) {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":5096,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4982}],"severity":"warning","sourceLocation":{"end":1037,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":1027},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:60:9:\n   |\n60 |         address owner,\n   |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":1557,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":1544},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:61:9:\n   |\n61 |         address resolver,\n   |         ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n    |\n159 |     function resolver(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4814,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4675}],"severity":"warning","sourceLocation":{"end":1583,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":1567},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:62:9:\n   |\n62 |         uint64 ttl\n   |         ^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n    |\n170 |     function ttl(bytes32 node) public view virtual override returns (uint64) {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":5096,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4982}],"severity":"warning","sourceLocation":{"end":1603,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":1593},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:75:9:\n   |\n75 |         address owner\n   |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":2059,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":2046},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:90:9:\n   |\n90 |         address owner\n   |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":2586,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":2573},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:105:9:\n    |\n105 |         address resolver\n    |         ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n    |\n159 |     function resolver(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4814,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4675}],"severity":"warning","sourceLocation":{"end":3072,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":3056},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:118:9:\n    |\n118 |         uint64 ttl\n    |         ^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n    |\n170 |     function ttl(bytes32 node) public view virtual override returns (uint64) {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":5096,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4982}],"severity":"warning","sourceLocation":{"end":3417,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":3407},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:192:9:\n    |\n192 |         address owner,\n    |         ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":5780,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":5767},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:198:38:\n    |\n198 |     function _setOwner(bytes32 node, address owner) internal virtual {\n    |                                      ^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:143:5:\n    |\n143 |     function owner(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4502,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4259}],"severity":"warning","sourceLocation":{"end":5961,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":5948},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:204:9:\n    |\n204 |         address resolver,\n    |         ^^^^^^^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:159:5:\n    |\n159 |     function resolver(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":4814,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4675}],"severity":"warning","sourceLocation":{"end":6105,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":6089},"type":"Warning"},{"component":"general","errorCode":"2519","formattedMessage":"Warning: This declaration shadows an existing declaration.\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:205:9:\n    |\n205 |         uint64 ttl\n    |         ^^^^^^^^^^\nNote: The shadowed declaration is here:\n   --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:170:5:\n    |\n170 |     function ttl(bytes32 node) public view virtual override returns (uint64) {\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"This declaration shadows an existing declaration.","secondarySourceLocations":[{"end":5096,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","message":"The shadowed declaration is here:","start":4982}],"severity":"warning","sourceLocation":{"end":6125,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":6115},"type":"Warning"},{"component":"general","errorCode":"2462","formattedMessage":"Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n  --> @ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:28:5:\n   |\n28 |     constructor() public {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.","severity":"warning","sourceLocation":{"end":687,"file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","start":618},"type":"Warning"}],"sources":{"@ensdomains/ens-contracts/contracts/registry/ENS.sol":{"ast":{"absolutePath":"@ensdomains/ens-contracts/contracts/registry/ENS.sol","exportedSymbols":{"ENS":[136]},"id":137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"31:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"ENS","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":136,"linearizedBaseContracts":[136],"name":"ENS","nameLocation":"67:3:0","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"ce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82","id":9,"name":"NewOwner","nameLocation":"156:8:0","nodeType":"EventDefinition","parameters":{"id":8,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"181:4:0","nodeType":"VariableDeclaration","scope":9,"src":"165:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"203:5:0","nodeType":"VariableDeclaration","scope":9,"src":"187:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4,"name":"bytes32","nodeType":"ElementaryTypeName","src":"187:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"218:5:0","nodeType":"VariableDeclaration","scope":9,"src":"210:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"210:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"164:60:0"},"src":"150:75:0"},{"anonymous":false,"eventSelector":"d4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d266","id":15,"name":"Transfer","nameLocation":"314:8:0","nodeType":"EventDefinition","parameters":{"id":14,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"339:4:0","nodeType":"VariableDeclaration","scope":15,"src":"323:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"353:5:0","nodeType":"VariableDeclaration","scope":15,"src":"345:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"345:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:37:0"},"src":"308:52:0"},{"anonymous":false,"eventSelector":"335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0","id":21,"name":"NewResolver","nameLocation":"424:11:0","nodeType":"EventDefinition","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"452:4:0","nodeType":"VariableDeclaration","scope":21,"src":"436:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"466:8:0","nodeType":"VariableDeclaration","scope":21,"src":"458:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"435:40:0"},"src":"418:58:0"},{"anonymous":false,"eventSelector":"1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68","id":27,"name":"NewTTL","nameLocation":"533:6:0","nodeType":"EventDefinition","parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"556:4:0","nodeType":"VariableDeclaration","scope":27,"src":"540:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22,"name":"bytes32","nodeType":"ElementaryTypeName","src":"540:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"569:3:0","nodeType":"VariableDeclaration","scope":27,"src":"562:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":24,"name":"uint64","nodeType":"ElementaryTypeName","src":"562:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"539:34:0"},"src":"527:47:0"},{"anonymous":false,"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":35,"name":"ApprovalForAll","nameLocation":"638:14:0","nodeType":"EventDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"678:5:0","nodeType":"VariableDeclaration","scope":35,"src":"662:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"709:8:0","nodeType":"VariableDeclaration","scope":35,"src":"693:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"732:8:0","nodeType":"VariableDeclaration","scope":35,"src":"727:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32,"name":"bool","nodeType":"ElementaryTypeName","src":"727:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"652:94:0"},"src":"632:115:0"},{"functionSelector":"cf408823","id":46,"implemented":false,"kind":"function","modifiers":[],"name":"setRecord","nameLocation":"762:9:0","nodeType":"FunctionDefinition","parameters":{"id":44,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37,"mutability":"mutable","name":"node","nameLocation":"789:4:0","nodeType":"VariableDeclaration","scope":46,"src":"781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36,"name":"bytes32","nodeType":"ElementaryTypeName","src":"781:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39,"mutability":"mutable","name":"owner","nameLocation":"811:5:0","nodeType":"VariableDeclaration","scope":46,"src":"803:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41,"mutability":"mutable","name":"resolver","nameLocation":"834:8:0","nodeType":"VariableDeclaration","scope":46,"src":"826:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43,"mutability":"mutable","name":"ttl","nameLocation":"859:3:0","nodeType":"VariableDeclaration","scope":46,"src":"852:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":42,"name":"uint64","nodeType":"ElementaryTypeName","src":"852:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"771:97:0"},"returnParameters":{"id":45,"nodeType":"ParameterList","parameters":[],"src":"877:0:0"},"scope":136,"src":"753:125:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5ef2c7f0","id":59,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeRecord","nameLocation":"893:16:0","nodeType":"FunctionDefinition","parameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"node","nameLocation":"927:4:0","nodeType":"VariableDeclaration","scope":59,"src":"919:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":47,"name":"bytes32","nodeType":"ElementaryTypeName","src":"919:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":50,"mutability":"mutable","name":"label","nameLocation":"949:5:0","nodeType":"VariableDeclaration","scope":59,"src":"941:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49,"name":"bytes32","nodeType":"ElementaryTypeName","src":"941:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":52,"mutability":"mutable","name":"owner","nameLocation":"972:5:0","nodeType":"VariableDeclaration","scope":59,"src":"964:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"964:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54,"mutability":"mutable","name":"resolver","nameLocation":"995:8:0","nodeType":"VariableDeclaration","scope":59,"src":"987:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53,"name":"address","nodeType":"ElementaryTypeName","src":"987:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"ttl","nameLocation":"1020:3:0","nodeType":"VariableDeclaration","scope":59,"src":"1013:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":55,"name":"uint64","nodeType":"ElementaryTypeName","src":"1013:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"909:120:0"},"returnParameters":{"id":58,"nodeType":"ParameterList","parameters":[],"src":"1038:0:0"},"scope":136,"src":"884:155:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06ab5923","id":70,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"1054:15:0","nodeType":"FunctionDefinition","parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61,"mutability":"mutable","name":"node","nameLocation":"1087:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1079:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1079:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":63,"mutability":"mutable","name":"label","nameLocation":"1109:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1101:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"owner","nameLocation":"1132:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1124:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64,"name":"address","nodeType":"ElementaryTypeName","src":"1124:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1069:74:0"},"returnParameters":{"id":69,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1162:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1162:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1161:9:0"},"scope":136,"src":"1045:126:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":77,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"1186:11:0","nodeType":"FunctionDefinition","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"mutability":"mutable","name":"node","nameLocation":"1206:4:0","nodeType":"VariableDeclaration","scope":77,"src":"1198:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":71,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1198:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":74,"mutability":"mutable","name":"resolver","nameLocation":"1220:8:0","nodeType":"VariableDeclaration","scope":77,"src":"1212:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1197:32:0"},"returnParameters":{"id":76,"nodeType":"ParameterList","parameters":[],"src":"1238:0:0"},"scope":136,"src":"1177:62:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":84,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"1254:8:0","nodeType":"FunctionDefinition","parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79,"mutability":"mutable","name":"node","nameLocation":"1271:4:0","nodeType":"VariableDeclaration","scope":84,"src":"1263:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81,"mutability":"mutable","name":"owner","nameLocation":"1285:5:0","nodeType":"VariableDeclaration","scope":84,"src":"1277:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"1277:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:29:0"},"returnParameters":{"id":83,"nodeType":"ParameterList","parameters":[],"src":"1300:0:0"},"scope":136,"src":"1245:56:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":91,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"1316:6:0","nodeType":"FunctionDefinition","parameters":{"id":89,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86,"mutability":"mutable","name":"node","nameLocation":"1331:4:0","nodeType":"VariableDeclaration","scope":91,"src":"1323:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":85,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1323:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":88,"mutability":"mutable","name":"ttl","nameLocation":"1344:3:0","nodeType":"VariableDeclaration","scope":91,"src":"1337:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":87,"name":"uint64","nodeType":"ElementaryTypeName","src":"1337:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1322:26:0"},"returnParameters":{"id":90,"nodeType":"ParameterList","parameters":[],"src":"1357:0:0"},"scope":136,"src":"1307:51:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a22cb465","id":98,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"1373:17:0","nodeType":"FunctionDefinition","parameters":{"id":96,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"operator","nameLocation":"1399:8:0","nodeType":"VariableDeclaration","scope":98,"src":"1391:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"1391:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"approved","nameLocation":"1414:8:0","nodeType":"VariableDeclaration","scope":98,"src":"1409:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":94,"name":"bool","nodeType":"ElementaryTypeName","src":"1409:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1390:33:0"},"returnParameters":{"id":97,"nodeType":"ParameterList","parameters":[],"src":"1432:0:0"},"scope":136,"src":"1364:69:0","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":105,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1448:5:0","nodeType":"FunctionDefinition","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"mutability":"mutable","name":"node","nameLocation":"1462:4:0","nodeType":"VariableDeclaration","scope":105,"src":"1454:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":99,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1453:14:0"},"returnParameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":105,"src":"1491:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102,"name":"address","nodeType":"ElementaryTypeName","src":"1491:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1490:9:0"},"scope":136,"src":"1439:61:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":112,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"1515:8:0","nodeType":"FunctionDefinition","parameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"node","nameLocation":"1532:4:0","nodeType":"VariableDeclaration","scope":112,"src":"1524:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1524:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1523:14:0"},"returnParameters":{"id":111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112,"src":"1561:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109,"name":"address","nodeType":"ElementaryTypeName","src":"1561:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1560:9:0"},"scope":136,"src":"1506:64:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":119,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"1585:3:0","nodeType":"FunctionDefinition","parameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"node","nameLocation":"1597:4:0","nodeType":"VariableDeclaration","scope":119,"src":"1589:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1589:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1588:14:0"},"returnParameters":{"id":118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":119,"src":"1626:6:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":116,"name":"uint64","nodeType":"ElementaryTypeName","src":"1626:6:0","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1625:8:0"},"scope":136,"src":"1576:58:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f79fe538","id":126,"implemented":false,"kind":"function","modifiers":[],"name":"recordExists","nameLocation":"1649:12:0","nodeType":"FunctionDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"node","nameLocation":"1670:4:0","nodeType":"VariableDeclaration","scope":126,"src":"1662:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1662:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1661:14:0"},"returnParameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":126,"src":"1699:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":123,"name":"bool","nodeType":"ElementaryTypeName","src":"1699:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1698:6:0"},"scope":136,"src":"1640:65:0","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e985e9c5","id":135,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"1720:16:0","nodeType":"FunctionDefinition","parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":128,"mutability":"mutable","name":"owner","nameLocation":"1754:5:0","nodeType":"VariableDeclaration","scope":135,"src":"1746:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"operator","nameLocation":"1777:8:0","nodeType":"VariableDeclaration","scope":135,"src":"1769:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"1769:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1736:55:0"},"returnParameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":135,"src":"1815:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":132,"name":"bool","nodeType":"ElementaryTypeName","src":"1815:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1814:6:0"},"scope":136,"src":"1711:110:0","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":137,"src":"57:1766:0","usedErrors":[],"usedEvents":[9,15,21,27,35]}],"src":"31:1793:0"},"id":0},"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol":{"ast":{"absolutePath":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","exportedSymbols":{"ENS":[136],"ENSRegistry":[560]},"id":561,"nodeType":"SourceUnit","nodes":[{"id":138,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"0:24:1"},{"absolutePath":"@ensdomains/ens-contracts/contracts/registry/ENS.sol","file":"./ENS.sol","id":139,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":561,"sourceUnit":137,"src":"26:19:1","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":141,"name":"ENS","nameLocations":["109:3:1"],"nodeType":"IdentifierPath","referencedDeclaration":136,"src":"109:3:1"},"id":142,"nodeType":"InheritanceSpecifier","src":"109:3:1"}],"canonicalName":"ENSRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":140,"nodeType":"StructuredDocumentation","src":"47:37:1","text":" The ENS registry contract."},"fullyImplemented":true,"id":560,"linearizedBaseContracts":[560,136],"name":"ENSRegistry","nameLocation":"94:11:1","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ENSRegistry.Record","id":149,"members":[{"constant":false,"id":144,"mutability":"mutable","name":"owner","nameLocation":"151:5:1","nodeType":"VariableDeclaration","scope":149,"src":"143:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":143,"name":"address","nodeType":"ElementaryTypeName","src":"143:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":146,"mutability":"mutable","name":"resolver","nameLocation":"174:8:1","nodeType":"VariableDeclaration","scope":149,"src":"166:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":145,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":148,"mutability":"mutable","name":"ttl","nameLocation":"199:3:1","nodeType":"VariableDeclaration","scope":149,"src":"192:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":147,"name":"uint64","nodeType":"ElementaryTypeName","src":"192:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"Record","nameLocation":"126:6:1","nodeType":"StructDefinition","scope":560,"src":"119:90:1","visibility":"public"},{"constant":false,"id":154,"mutability":"mutable","name":"records","nameLocation":"242:7:1","nodeType":"VariableDeclaration","scope":560,"src":"215:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record)"},"typeName":{"id":153,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"215:26:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":152,"nodeType":"UserDefinedTypeName","pathNode":{"id":151,"name":"Record","nameLocations":["234:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":149,"src":"234:6:1"},"referencedDeclaration":149,"src":"234:6:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage_ptr","typeString":"struct ENSRegistry.Record"}}},"visibility":"internal"},{"constant":false,"id":160,"mutability":"mutable","name":"operators","nameLocation":"300:9:1","nodeType":"VariableDeclaration","scope":560,"src":"255:54:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":159,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":155,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"255:44:1","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":158,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":156,"name":"address","nodeType":"ElementaryTypeName","src":"282:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"274:24:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":157,"name":"bool","nodeType":"ElementaryTypeName","src":"293:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"body":{"id":186,"nodeType":"Block","src":"420:133:1","statements":[{"assignments":[165],"declarations":[{"constant":false,"id":165,"mutability":"mutable","name":"owner","nameLocation":"438:5:1","nodeType":"VariableDeclaration","scope":186,"src":"430:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":164,"name":"address","nodeType":"ElementaryTypeName","src":"430:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":170,"initialValue":{"expression":{"baseExpression":{"id":166,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"446:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":168,"indexExpression":{"id":167,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"454:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"446:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"460:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":144,"src":"446:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"430:35:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":172,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"483:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":173,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"492:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"496:6:1","memberName":"sender","nodeType":"MemberAccess","src":"492:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"483:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":176,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"506:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":178,"indexExpression":{"id":177,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":165,"src":"516:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"506:16:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":181,"indexExpression":{"expression":{"id":179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"523:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"527:6:1","memberName":"sender","nodeType":"MemberAccess","src":"523:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"506:28:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"483:51:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":171,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"475:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"475:60:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":184,"nodeType":"ExpressionStatement","src":"475:60:1"},{"id":185,"nodeType":"PlaceholderStatement","src":"545:1:1"}]},"id":187,"name":"authorised","nameLocation":"395:10:1","nodeType":"ModifierDefinition","parameters":{"id":163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"mutability":"mutable","name":"node","nameLocation":"414:4:1","nodeType":"VariableDeclaration","scope":187,"src":"406:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"406:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"405:14:1"},"src":"386:167:1","virtual":false,"visibility":"internal"},{"body":{"id":199,"nodeType":"Block","src":"639:48:1","statements":[{"expression":{"id":197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":191,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"649:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":193,"indexExpression":{"hexValue":"307830","id":192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"657:3:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"649:12:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"662:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":144,"src":"649:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"670:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"674:6:1","memberName":"sender","nodeType":"MemberAccess","src":"670:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"649:31:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":198,"nodeType":"ExpressionStatement","src":"649:31:1"}]},"documentation":{"id":188,"nodeType":"StructuredDocumentation","src":"559:54:1","text":" @dev Constructs a new ENS registry."},"id":200,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":189,"nodeType":"ParameterList","parameters":[],"src":"629:2:1"},"returnParameters":{"id":190,"nodeType":"ParameterList","parameters":[],"src":"639:0:1"},"scope":560,"src":"618:69:1","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[46],"body":{"id":224,"nodeType":"Block","src":"1070:87:1","statements":[{"expression":{"arguments":[{"id":214,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"1089:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":215,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":205,"src":"1095:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":213,"name":"setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":278,"src":"1080:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":217,"nodeType":"ExpressionStatement","src":"1080:21:1"},{"expression":{"arguments":[{"id":219,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":203,"src":"1130:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":220,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":207,"src":"1136:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":221,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"1146:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":218,"name":"_setResolverAndTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"1111:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$","typeString":"function (bytes32,address,uint64)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1111:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":223,"nodeType":"ExpressionStatement","src":"1111:39:1"}]},"documentation":{"id":201,"nodeType":"StructuredDocumentation","src":"693:230:1","text":" @dev Sets the record for a node.\n @param node The node to update.\n @param owner The address of the new owner.\n @param resolver The address of the resolver.\n @param ttl The TTL in seconds."},"functionSelector":"cf408823","id":225,"implemented":true,"kind":"function","modifiers":[],"name":"setRecord","nameLocation":"937:9:1","nodeType":"FunctionDefinition","overrides":{"id":211,"nodeType":"OverrideSpecifier","overrides":[],"src":"1061:8:1"},"parameters":{"id":210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":203,"mutability":"mutable","name":"node","nameLocation":"964:4:1","nodeType":"VariableDeclaration","scope":225,"src":"956:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"956:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":205,"mutability":"mutable","name":"owner","nameLocation":"986:5:1","nodeType":"VariableDeclaration","scope":225,"src":"978:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":204,"name":"address","nodeType":"ElementaryTypeName","src":"978:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"resolver","nameLocation":"1009:8:1","nodeType":"VariableDeclaration","scope":225,"src":"1001:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":206,"name":"address","nodeType":"ElementaryTypeName","src":"1001:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":209,"mutability":"mutable","name":"ttl","nameLocation":"1034:3:1","nodeType":"VariableDeclaration","scope":225,"src":"1027:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":208,"name":"uint64","nodeType":"ElementaryTypeName","src":"1027:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"946:97:1"},"returnParameters":{"id":212,"nodeType":"ParameterList","parameters":[],"src":"1070:0:1"},"scope":560,"src":"928:229:1","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[59],"body":{"id":254,"nodeType":"Block","src":"1636:122:1","statements":[{"assignments":[241],"declarations":[{"constant":false,"id":241,"mutability":"mutable","name":"subnode","nameLocation":"1654:7:1","nodeType":"VariableDeclaration","scope":254,"src":"1646:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1646:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":247,"initialValue":{"arguments":[{"id":243,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"1680:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":244,"name":"label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":230,"src":"1686:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":245,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"1693:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":242,"name":"setSubnodeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"1664:15:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,address) returns (bytes32)"}},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:35:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1646:53:1"},{"expression":{"arguments":[{"id":249,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"1728:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":250,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":234,"src":"1737:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":251,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"1747:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":248,"name":"_setResolverAndTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"1709:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint64_$returns$__$","typeString":"function (bytes32,address,uint64)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:42:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":253,"nodeType":"ExpressionStatement","src":"1709:42:1"}]},"documentation":{"id":226,"nodeType":"StructuredDocumentation","src":"1163:296:1","text":" @dev Sets the record for a subnode.\n @param node The parent node.\n @param label The hash of the label specifying the subnode.\n @param owner The address of the new owner.\n @param resolver The address of the resolver.\n @param ttl The TTL in seconds."},"functionSelector":"5ef2c7f0","id":255,"implemented":true,"kind":"function","modifiers":[],"name":"setSubnodeRecord","nameLocation":"1473:16:1","nodeType":"FunctionDefinition","overrides":{"id":238,"nodeType":"OverrideSpecifier","overrides":[],"src":"1627:8:1"},"parameters":{"id":237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":228,"mutability":"mutable","name":"node","nameLocation":"1507:4:1","nodeType":"VariableDeclaration","scope":255,"src":"1499:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1499:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":230,"mutability":"mutable","name":"label","nameLocation":"1529:5:1","nodeType":"VariableDeclaration","scope":255,"src":"1521:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1521:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":232,"mutability":"mutable","name":"owner","nameLocation":"1552:5:1","nodeType":"VariableDeclaration","scope":255,"src":"1544:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":231,"name":"address","nodeType":"ElementaryTypeName","src":"1544:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":234,"mutability":"mutable","name":"resolver","nameLocation":"1575:8:1","nodeType":"VariableDeclaration","scope":255,"src":"1567:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":233,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":236,"mutability":"mutable","name":"ttl","nameLocation":"1600:3:1","nodeType":"VariableDeclaration","scope":255,"src":"1593:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":235,"name":"uint64","nodeType":"ElementaryTypeName","src":"1593:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1489:120:1"},"returnParameters":{"id":239,"nodeType":"ParameterList","parameters":[],"src":"1636:0:1"},"scope":560,"src":"1464:294:1","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[84],"body":{"id":277,"nodeType":"Block","src":"2107:75:1","statements":[{"expression":{"arguments":[{"id":268,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"2127:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":269,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2133:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":267,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":509,"src":"2117:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":271,"nodeType":"ExpressionStatement","src":"2117:22:1"},{"eventCall":{"arguments":[{"id":273,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"2163:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":274,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2169:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":272,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"2154:8:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":276,"nodeType":"EmitStatement","src":"2149:26:1"}]},"documentation":{"id":256,"nodeType":"StructuredDocumentation","src":"1764:228:1","text":" @dev Transfers ownership of a node to a new address. May only be called by the current owner of the node.\n @param node The node to transfer ownership of.\n @param owner The address of the new owner."},"functionSelector":"5b0fc9c3","id":278,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":264,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"2101:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":265,"kind":"modifierInvocation","modifierName":{"id":263,"name":"authorised","nameLocations":["2090:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":187,"src":"2090:10:1"},"nodeType":"ModifierInvocation","src":"2090:16:1"}],"name":"setOwner","nameLocation":"2006:8:1","nodeType":"FunctionDefinition","overrides":{"id":262,"nodeType":"OverrideSpecifier","overrides":[],"src":"2081:8:1"},"parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":258,"mutability":"mutable","name":"node","nameLocation":"2032:4:1","nodeType":"VariableDeclaration","scope":278,"src":"2024:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2024:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":260,"mutability":"mutable","name":"owner","nameLocation":"2054:5:1","nodeType":"VariableDeclaration","scope":278,"src":"2046:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":259,"name":"address","nodeType":"ElementaryTypeName","src":"2046:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2014:51:1"},"returnParameters":{"id":266,"nodeType":"ParameterList","parameters":[],"src":"2107:0:1"},"scope":560,"src":"1997:185:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[70],"body":{"id":317,"nodeType":"Block","src":"2652:177:1","statements":[{"assignments":[295],"declarations":[{"constant":false,"id":295,"mutability":"mutable","name":"subnode","nameLocation":"2670:7:1","nodeType":"VariableDeclaration","scope":317,"src":"2662:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2662:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":303,"initialValue":{"arguments":[{"arguments":[{"id":299,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":281,"src":"2707:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":300,"name":"label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"2713:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2690:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2694:12:1","memberName":"encodePacked","nodeType":"MemberAccess","src":"2690:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2690:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":296,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2680:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2662:58:1"},{"expression":{"arguments":[{"id":305,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2740:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":306,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":285,"src":"2749:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":304,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":509,"src":"2730:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2730:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"ExpressionStatement","src":"2730:25:1"},{"eventCall":{"arguments":[{"id":310,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":281,"src":"2779:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":311,"name":"label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":283,"src":"2785:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":312,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":285,"src":"2792:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":309,"name":"NewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"2770:8:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,address)"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2770:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":314,"nodeType":"EmitStatement","src":"2765:33:1"},{"expression":{"id":315,"name":"subnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2815:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":293,"id":316,"nodeType":"Return","src":"2808:14:1"}]},"documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"2188:301:1","text":" @dev Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\n @param node The parent node.\n @param label The hash of the label specifying the subnode.\n @param owner The address of the new owner."},"functionSelector":"06ab5923","id":318,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":289,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":281,"src":"2628:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":290,"kind":"modifierInvocation","modifierName":{"id":288,"name":"authorised","nameLocations":["2617:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":187,"src":"2617:10:1"},"nodeType":"ModifierInvocation","src":"2617:16:1"}],"name":"setSubnodeOwner","nameLocation":"2503:15:1","nodeType":"FunctionDefinition","overrides":{"id":287,"nodeType":"OverrideSpecifier","overrides":[],"src":"2608:8:1"},"parameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":281,"mutability":"mutable","name":"node","nameLocation":"2536:4:1","nodeType":"VariableDeclaration","scope":318,"src":"2528:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2528:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":283,"mutability":"mutable","name":"label","nameLocation":"2558:5:1","nodeType":"VariableDeclaration","scope":318,"src":"2550:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2550:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":285,"mutability":"mutable","name":"owner","nameLocation":"2581:5:1","nodeType":"VariableDeclaration","scope":318,"src":"2573:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":284,"name":"address","nodeType":"ElementaryTypeName","src":"2573:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2518:74:1"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":318,"src":"2643:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2643:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2642:9:1"},"scope":560,"src":"2494:335:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[77],"body":{"id":342,"nodeType":"Block","src":"3120:92:1","statements":[{"eventCall":{"arguments":[{"id":331,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"3147:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":332,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"3153:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":330,"name":"NewResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"3135:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":334,"nodeType":"EmitStatement","src":"3130:32:1"},{"expression":{"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":335,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"3172:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":337,"indexExpression":{"id":336,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"3180:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3172:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3186:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":146,"src":"3172:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":339,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"3197:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3172:33:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":341,"nodeType":"ExpressionStatement","src":"3172:33:1"}]},"documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"2835:164:1","text":" @dev Sets the resolver address for the specified node.\n @param node The node to update.\n @param resolver The address of the resolver."},"functionSelector":"1896f70a","id":343,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":327,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"3114:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":328,"kind":"modifierInvocation","modifierName":{"id":326,"name":"authorised","nameLocations":["3103:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":187,"src":"3103:10:1"},"nodeType":"ModifierInvocation","src":"3103:16:1"}],"name":"setResolver","nameLocation":"3013:11:1","nodeType":"FunctionDefinition","overrides":{"id":325,"nodeType":"OverrideSpecifier","overrides":[],"src":"3094:8:1"},"parameters":{"id":324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"mutability":"mutable","name":"node","nameLocation":"3042:4:1","nodeType":"VariableDeclaration","scope":343,"src":"3034:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3034:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":323,"mutability":"mutable","name":"resolver","nameLocation":"3064:8:1","nodeType":"VariableDeclaration","scope":343,"src":"3056:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":322,"name":"address","nodeType":"ElementaryTypeName","src":"3056:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3024:54:1"},"returnParameters":{"id":329,"nodeType":"ParameterList","parameters":[],"src":"3120:0:1"},"scope":560,"src":"3004:208:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[91],"body":{"id":367,"nodeType":"Block","src":"3465:72:1","statements":[{"eventCall":{"arguments":[{"id":356,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"3487:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":357,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":348,"src":"3493:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":355,"name":"NewTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3480:6:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$","typeString":"function (bytes32,uint64)"}},"id":358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3480:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":359,"nodeType":"EmitStatement","src":"3475:22:1"},{"expression":{"id":365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":360,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"3507:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":362,"indexExpression":{"id":361,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"3515:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3507:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3521:3:1","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":148,"src":"3507:17:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":364,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":348,"src":"3527:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3507:23:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":366,"nodeType":"ExpressionStatement","src":"3507:23:1"}]},"documentation":{"id":344,"nodeType":"StructuredDocumentation","src":"3218:137:1","text":" @dev Sets the TTL for the specified node.\n @param node The node to update.\n @param ttl The TTL in seconds."},"functionSelector":"14ab9038","id":368,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":352,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"3459:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":353,"kind":"modifierInvocation","modifierName":{"id":351,"name":"authorised","nameLocations":["3448:10:1"],"nodeType":"IdentifierPath","referencedDeclaration":187,"src":"3448:10:1"},"nodeType":"ModifierInvocation","src":"3448:16:1"}],"name":"setTTL","nameLocation":"3369:6:1","nodeType":"FunctionDefinition","overrides":{"id":350,"nodeType":"OverrideSpecifier","overrides":[],"src":"3439:8:1"},"parameters":{"id":349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"node","nameLocation":"3393:4:1","nodeType":"VariableDeclaration","scope":368,"src":"3385:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3385:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":348,"mutability":"mutable","name":"ttl","nameLocation":"3414:3:1","nodeType":"VariableDeclaration","scope":368,"src":"3407:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":347,"name":"uint64","nodeType":"ElementaryTypeName","src":"3407:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3375:48:1"},"returnParameters":{"id":354,"nodeType":"ParameterList","parameters":[],"src":"3465:0:1"},"scope":560,"src":"3360:177:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[98],"body":{"id":393,"nodeType":"Block","src":"3979:120:1","statements":[{"expression":{"id":384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":377,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"3989:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":381,"indexExpression":{"expression":{"id":378,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3999:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4003:6:1","memberName":"sender","nodeType":"MemberAccess","src":"3999:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3989:21:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":382,"indexExpression":{"id":380,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4011:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3989:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":383,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"4023:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3989:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":385,"nodeType":"ExpressionStatement","src":"3989:42:1"},{"eventCall":{"arguments":[{"expression":{"id":387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4061:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4065:6:1","memberName":"sender","nodeType":"MemberAccess","src":"4061:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":389,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4073:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":390,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"4083:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":386,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"4046:14:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4046:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":392,"nodeType":"EmitStatement","src":"4041:51:1"}]},"documentation":{"id":369,"nodeType":"StructuredDocumentation","src":"3543:323:1","text":" @dev Enable or disable approval for a third party (\"operator\") to manage\n  all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\n @param operator Address to add to the set of authorized operators.\n @param approved True if the operator is approved, false to revoke approval."},"functionSelector":"a22cb465","id":394,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3880:17:1","nodeType":"FunctionDefinition","overrides":{"id":375,"nodeType":"OverrideSpecifier","overrides":[],"src":"3970:8:1"},"parameters":{"id":374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":371,"mutability":"mutable","name":"operator","nameLocation":"3915:8:1","nodeType":"VariableDeclaration","scope":394,"src":"3907:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":370,"name":"address","nodeType":"ElementaryTypeName","src":"3907:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":373,"mutability":"mutable","name":"approved","nameLocation":"3938:8:1","nodeType":"VariableDeclaration","scope":394,"src":"3933:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":372,"name":"bool","nodeType":"ElementaryTypeName","src":"3933:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3897:55:1"},"returnParameters":{"id":376,"nodeType":"ParameterList","parameters":[],"src":"3979:0:1"},"scope":560,"src":"3871:228:1","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[105],"body":{"id":425,"nodeType":"Block","src":"4349:153:1","statements":[{"assignments":[404],"declarations":[{"constant":false,"id":404,"mutability":"mutable","name":"addr","nameLocation":"4367:4:1","nodeType":"VariableDeclaration","scope":425,"src":"4359:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":403,"name":"address","nodeType":"ElementaryTypeName","src":"4359:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":409,"initialValue":{"expression":{"baseExpression":{"id":405,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"4374:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":407,"indexExpression":{"id":406,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":397,"src":"4382:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4374:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4388:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":144,"src":"4374:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4359:34:1"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":410,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4407:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":413,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4423:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSRegistry_$560","typeString":"contract ENSRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ENSRegistry_$560","typeString":"contract ENSRegistry"}],"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4415:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":411,"name":"address","nodeType":"ElementaryTypeName","src":"4415:7:1","typeDescriptions":{}}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4407:21:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":422,"nodeType":"IfStatement","src":"4403:71:1","trueBody":{"id":421,"nodeType":"Block","src":"4430:44:1","statements":[{"expression":{"arguments":[{"hexValue":"307830","id":418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4459:3:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4451:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":416,"name":"address","nodeType":"ElementaryTypeName","src":"4451:7:1","typeDescriptions":{}}},"id":419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4451:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":402,"id":420,"nodeType":"Return","src":"4444:19:1"}]}},{"expression":{"id":423,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4491:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":402,"id":424,"nodeType":"Return","src":"4484:11:1"}]},"documentation":{"id":395,"nodeType":"StructuredDocumentation","src":"4105:149:1","text":" @dev Returns the address that owns the specified node.\n @param node The specified node.\n @return address of the owner."},"functionSelector":"02571be3","id":426,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"4268:5:1","nodeType":"FunctionDefinition","overrides":{"id":399,"nodeType":"OverrideSpecifier","overrides":[],"src":"4322:8:1"},"parameters":{"id":398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":397,"mutability":"mutable","name":"node","nameLocation":"4291:4:1","nodeType":"VariableDeclaration","scope":426,"src":"4283:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4283:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4273:28:1"},"returnParameters":{"id":402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":426,"src":"4340:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":400,"name":"address","nodeType":"ElementaryTypeName","src":"4340:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4339:9:1"},"scope":560,"src":"4259:243:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[112],"body":{"id":440,"nodeType":"Block","src":"4768:46:1","statements":[{"expression":{"expression":{"baseExpression":{"id":435,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"4785:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":437,"indexExpression":{"id":436,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":429,"src":"4793:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4785:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4799:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":146,"src":"4785:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":434,"id":439,"nodeType":"Return","src":"4778:29:1"}]},"documentation":{"id":427,"nodeType":"StructuredDocumentation","src":"4508:162:1","text":" @dev Returns the address of the resolver for the specified node.\n @param node The specified node.\n @return address of the resolver."},"functionSelector":"0178b8bf","id":441,"implemented":true,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"4684:8:1","nodeType":"FunctionDefinition","overrides":{"id":431,"nodeType":"OverrideSpecifier","overrides":[],"src":"4741:8:1"},"parameters":{"id":430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":429,"mutability":"mutable","name":"node","nameLocation":"4710:4:1","nodeType":"VariableDeclaration","scope":441,"src":"4702:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4702:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4692:28:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":441,"src":"4759:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":432,"name":"address","nodeType":"ElementaryTypeName","src":"4759:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4758:9:1"},"scope":560,"src":"4675:139:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[119],"body":{"id":455,"nodeType":"Block","src":"5055:41:1","statements":[{"expression":{"expression":{"baseExpression":{"id":450,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"5072:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":452,"indexExpression":{"id":451,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"5080:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5072:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5086:3:1","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":148,"src":"5072:17:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":449,"id":454,"nodeType":"Return","src":"5065:24:1"}]},"documentation":{"id":442,"nodeType":"StructuredDocumentation","src":"4820:157:1","text":" @dev Returns the TTL of a node, and any records associated with it.\n @param node The specified node.\n @return ttl of the node."},"functionSelector":"16a25cbd","id":456,"implemented":true,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"4991:3:1","nodeType":"FunctionDefinition","overrides":{"id":446,"nodeType":"OverrideSpecifier","overrides":[],"src":"5029:8:1"},"parameters":{"id":445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":444,"mutability":"mutable","name":"node","nameLocation":"5003:4:1","nodeType":"VariableDeclaration","scope":456,"src":"4995:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4994:14:1"},"returnParameters":{"id":449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":456,"src":"5047:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":447,"name":"uint64","nodeType":"ElementaryTypeName","src":"5047:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5046:8:1"},"scope":560,"src":"4982:114:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[126],"body":{"id":475,"nodeType":"Block","src":"5360:59:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":465,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"5377:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":467,"indexExpression":{"id":466,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"5385:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5377:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5391:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":144,"src":"5377:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"307830","id":471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5408:3:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5400:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":469,"name":"address","nodeType":"ElementaryTypeName","src":"5400:7:1","typeDescriptions":{}}},"id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5400:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5377:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":464,"id":474,"nodeType":"Return","src":"5370:42:1"}]},"documentation":{"id":457,"nodeType":"StructuredDocumentation","src":"5102:159:1","text":" @dev Returns whether a record has been imported to the registry.\n @param node The specified node.\n @return Bool if record exists"},"functionSelector":"f79fe538","id":476,"implemented":true,"kind":"function","modifiers":[],"name":"recordExists","nameLocation":"5275:12:1","nodeType":"FunctionDefinition","overrides":{"id":461,"nodeType":"OverrideSpecifier","overrides":[],"src":"5336:8:1"},"parameters":{"id":460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":459,"mutability":"mutable","name":"node","nameLocation":"5305:4:1","nodeType":"VariableDeclaration","scope":476,"src":"5297:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5297:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5287:28:1"},"returnParameters":{"id":464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":476,"src":"5354:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":462,"name":"bool","nodeType":"ElementaryTypeName","src":"5354:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5353:6:1"},"scope":560,"src":"5266:153:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[135],"body":{"id":493,"nodeType":"Block","src":"5859:50:1","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":487,"name":"operators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":160,"src":"5876:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":489,"indexExpression":{"id":488,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":479,"src":"5886:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5876:16:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":491,"indexExpression":{"id":490,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"5893:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5876:26:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":486,"id":492,"nodeType":"Return","src":"5869:33:1"}]},"documentation":{"id":477,"nodeType":"StructuredDocumentation","src":"5425:302:1","text":" @dev Query if an address is an authorized operator for another address.\n @param owner The address that owns the records.\n @param operator The address that acts on behalf of the owner.\n @return True if `operator` is an approved operator for `owner`, false otherwise."},"functionSelector":"e985e9c5","id":494,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5741:16:1","nodeType":"FunctionDefinition","overrides":{"id":483,"nodeType":"OverrideSpecifier","overrides":[],"src":"5835:8:1"},"parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":479,"mutability":"mutable","name":"owner","nameLocation":"5775:5:1","nodeType":"VariableDeclaration","scope":494,"src":"5767:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":478,"name":"address","nodeType":"ElementaryTypeName","src":"5767:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":481,"mutability":"mutable","name":"operator","nameLocation":"5798:8:1","nodeType":"VariableDeclaration","scope":494,"src":"5790:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":480,"name":"address","nodeType":"ElementaryTypeName","src":"5790:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5757:55:1"},"returnParameters":{"id":486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":494,"src":"5853:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":484,"name":"bool","nodeType":"ElementaryTypeName","src":"5853:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5852:6:1"},"scope":560,"src":"5732:177:1","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":508,"nodeType":"Block","src":"5980:44:1","statements":[{"expression":{"id":506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":501,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"5990:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":503,"indexExpression":{"id":502,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"5998:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5990:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6004:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":144,"src":"5990:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":505,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"6012:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5990:27:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":507,"nodeType":"ExpressionStatement","src":"5990:27:1"}]},"id":509,"implemented":true,"kind":"function","modifiers":[],"name":"_setOwner","nameLocation":"5924:9:1","nodeType":"FunctionDefinition","parameters":{"id":499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":496,"mutability":"mutable","name":"node","nameLocation":"5942:4:1","nodeType":"VariableDeclaration","scope":509,"src":"5934:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5934:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":498,"mutability":"mutable","name":"owner","nameLocation":"5956:5:1","nodeType":"VariableDeclaration","scope":509,"src":"5948:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"5948:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5933:29:1"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[],"src":"5980:0:1"},"scope":560,"src":"5915:109:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":558,"nodeType":"Block","src":"6141:284:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":518,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"6155:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":519,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"6167:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":521,"indexExpression":{"id":520,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6175:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6167:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6181:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6167:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6155:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":537,"nodeType":"IfStatement","src":"6151:144:1","trueBody":{"id":536,"nodeType":"Block","src":"6191:104:1","statements":[{"expression":{"id":529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":524,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"6205:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":526,"indexExpression":{"id":525,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6213:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6205:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6219:8:1","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6205:22:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":528,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"6230:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6205:33:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":530,"nodeType":"ExpressionStatement","src":"6205:33:1"},{"eventCall":{"arguments":[{"id":532,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6269:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":533,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"6275:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":531,"name":"NewResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"6257:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6257:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":535,"nodeType":"EmitStatement","src":"6252:32:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":538,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"6309:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"baseExpression":{"id":539,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"6316:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":541,"indexExpression":{"id":540,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6324:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6316:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6330:3:1","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":148,"src":"6316:17:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6309:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":557,"nodeType":"IfStatement","src":"6305:114:1","trueBody":{"id":556,"nodeType":"Block","src":"6335:84:1","statements":[{"expression":{"id":549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":544,"name":"records","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":154,"src":"6349:7:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$149_storage_$","typeString":"mapping(bytes32 => struct ENSRegistry.Record storage ref)"}},"id":546,"indexExpression":{"id":545,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6357:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6349:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$149_storage","typeString":"struct ENSRegistry.Record storage ref"}},"id":547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6363:3:1","memberName":"ttl","nodeType":"MemberAccess","referencedDeclaration":148,"src":"6349:17:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":548,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"6369:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6349:23:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":550,"nodeType":"ExpressionStatement","src":"6349:23:1"},{"eventCall":{"arguments":[{"id":552,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"6398:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":553,"name":"ttl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":515,"src":"6404:3:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":551,"name":"NewTTL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6391:6:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$","typeString":"function (bytes32,uint64)"}},"id":554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6391:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":555,"nodeType":"EmitStatement","src":"6386:22:1"}]}}]},"id":559,"implemented":true,"kind":"function","modifiers":[],"name":"_setResolverAndTTL","nameLocation":"6039:18:1","nodeType":"FunctionDefinition","parameters":{"id":516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":511,"mutability":"mutable","name":"node","nameLocation":"6075:4:1","nodeType":"VariableDeclaration","scope":559,"src":"6067:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6067:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":513,"mutability":"mutable","name":"resolver","nameLocation":"6097:8:1","nodeType":"VariableDeclaration","scope":559,"src":"6089:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":512,"name":"address","nodeType":"ElementaryTypeName","src":"6089:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":515,"mutability":"mutable","name":"ttl","nameLocation":"6122:3:1","nodeType":"VariableDeclaration","scope":559,"src":"6115:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":514,"name":"uint64","nodeType":"ElementaryTypeName","src":"6115:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6057:74:1"},"returnParameters":{"id":517,"nodeType":"ParameterList","parameters":[],"src":"6141:0:1"},"scope":560,"src":"6030:395:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":561,"src":"85:6342:1","usedErrors":[],"usedEvents":[9,15,21,27,35]}],"src":"0:6428:1"},"id":1},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","exportedSymbols":{"Initializable":[1146],"Ownable2StepUpgradeable":[697],"OwnableUpgradeable":[892]},"id":698,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":562,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:2"},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","file":"./OwnableUpgradeable.sol","id":564,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":698,"sourceUnit":893,"src":"133:60:2","symbolAliases":[{"foreign":{"id":563,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"141:18:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":566,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":698,"sourceUnit":1147,"src":"194:63:2","symbolAliases":[{"foreign":{"id":565,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"202:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":568,"name":"Initializable","nameLocations":["1115:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":1146,"src":"1115:13:2"},"id":569,"nodeType":"InheritanceSpecifier","src":"1115:13:2"},{"baseName":{"id":570,"name":"OwnableUpgradeable","nameLocations":["1130:18:2"],"nodeType":"IdentifierPath","referencedDeclaration":892,"src":"1130:18:2"},"id":571,"nodeType":"InheritanceSpecifier","src":"1130:18:2"}],"canonicalName":"Ownable2StepUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":567,"nodeType":"StructuredDocumentation","src":"259:810:2","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\n The initial owner is specified at deployment time in the constructor for `Ownable`. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":697,"linearizedBaseContracts":[697,892,1192,1146],"name":"Ownable2StepUpgradeable","nameLocation":"1088:23:2","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Ownable2StepUpgradeable.Ownable2StepStorage","documentation":{"id":572,"nodeType":"StructuredDocumentation","src":"1155:70:2","text":"@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step"},"id":575,"members":[{"constant":false,"id":574,"mutability":"mutable","name":"_pendingOwner","nameLocation":"1275:13:2","nodeType":"VariableDeclaration","scope":575,"src":"1267:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":573,"name":"address","nodeType":"ElementaryTypeName","src":"1267:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Ownable2StepStorage","nameLocation":"1237:19:2","nodeType":"StructDefinition","scope":697,"src":"1230:65:2","visibility":"public"},{"constant":true,"id":578,"mutability":"constant","name":"Ownable2StepStorageLocation","nameLocation":"1442:27:2","nodeType":"VariableDeclaration","scope":697,"src":"1417:121:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1417:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307832333765313538323232653365363936386237326239646230643830343361616366303734616439663635306630643136303662346438326565343332633030","id":577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1472:66:2","typeDescriptions":{"typeIdentifier":"t_rational_16053720875717120191110171845200109550086765943194951757191984851604933389312_by_1","typeString":"int_const 1605...(69 digits omitted)...9312"},"value":"0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00"},"visibility":"private"},{"body":{"id":585,"nodeType":"Block","src":"1633:86:2","statements":[{"AST":{"nativeSrc":"1652:61:2","nodeType":"YulBlock","src":"1652:61:2","statements":[{"nativeSrc":"1666:37:2","nodeType":"YulAssignment","src":"1666:37:2","value":{"name":"Ownable2StepStorageLocation","nativeSrc":"1676:27:2","nodeType":"YulIdentifier","src":"1676:27:2"},"variableNames":[{"name":"$.slot","nativeSrc":"1666:6:2","nodeType":"YulIdentifier","src":"1666:6:2"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":582,"isOffset":false,"isSlot":true,"src":"1666:6:2","suffix":"slot","valueSize":1},{"declaration":578,"isOffset":false,"isSlot":false,"src":"1676:27:2","valueSize":1}],"id":584,"nodeType":"InlineAssembly","src":"1643:70:2"}]},"id":586,"implemented":true,"kind":"function","modifiers":[],"name":"_getOwnable2StepStorage","nameLocation":"1554:23:2","nodeType":"FunctionDefinition","parameters":{"id":579,"nodeType":"ParameterList","parameters":[],"src":"1577:2:2"},"returnParameters":{"id":583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":582,"mutability":"mutable","name":"$","nameLocation":"1630:1:2","nodeType":"VariableDeclaration","scope":586,"src":"1602:29:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":581,"nodeType":"UserDefinedTypeName","pathNode":{"id":580,"name":"Ownable2StepStorage","nameLocations":["1602:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":575,"src":"1602:19:2"},"referencedDeclaration":575,"src":"1602:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"src":"1601:31:2"},"scope":697,"src":"1545:174:2","stateMutability":"pure","virtual":false,"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":592,"name":"OwnershipTransferStarted","nameLocation":"1731:24:2","nodeType":"EventDefinition","parameters":{"id":591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":588,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1772:13:2","nodeType":"VariableDeclaration","scope":592,"src":"1756:29:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":587,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":590,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1803:8:2","nodeType":"VariableDeclaration","scope":592,"src":"1787:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":589,"name":"address","nodeType":"ElementaryTypeName","src":"1787:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1755:57:2"},"src":"1725:88:2"},{"body":{"id":597,"nodeType":"Block","src":"1876:7:2","statements":[]},"id":598,"implemented":true,"kind":"function","modifiers":[{"id":595,"kind":"modifierInvocation","modifierName":{"id":594,"name":"onlyInitializing","nameLocations":["1859:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"1859:16:2"},"nodeType":"ModifierInvocation","src":"1859:16:2"}],"name":"__Ownable2Step_init","nameLocation":"1828:19:2","nodeType":"FunctionDefinition","parameters":{"id":593,"nodeType":"ParameterList","parameters":[],"src":"1847:2:2"},"returnParameters":{"id":596,"nodeType":"ParameterList","parameters":[],"src":"1876:0:2"},"scope":697,"src":"1819:64:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":603,"nodeType":"Block","src":"1956:7:2","statements":[]},"id":604,"implemented":true,"kind":"function","modifiers":[{"id":601,"kind":"modifierInvocation","modifierName":{"id":600,"name":"onlyInitializing","nameLocations":["1939:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"1939:16:2"},"nodeType":"ModifierInvocation","src":"1939:16:2"}],"name":"__Ownable2Step_init_unchained","nameLocation":"1898:29:2","nodeType":"FunctionDefinition","parameters":{"id":599,"nodeType":"ParameterList","parameters":[],"src":"1927:2:2"},"returnParameters":{"id":602,"nodeType":"ParameterList","parameters":[],"src":"1956:0:2"},"scope":697,"src":"1889:74:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":619,"nodeType":"Block","src":"2100:106:2","statements":[{"assignments":[612],"declarations":[{"constant":false,"id":612,"mutability":"mutable","name":"$","nameLocation":"2138:1:2","nodeType":"VariableDeclaration","scope":619,"src":"2110:29:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":611,"nodeType":"UserDefinedTypeName","pathNode":{"id":610,"name":"Ownable2StepStorage","nameLocations":["2110:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":575,"src":"2110:19:2"},"referencedDeclaration":575,"src":"2110:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":613,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"2142:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2142:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2110:57:2"},{"expression":{"expression":{"id":616,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"2184:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2186:13:2","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":574,"src":"2184:15:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":609,"id":618,"nodeType":"Return","src":"2177:22:2"}]},"documentation":{"id":605,"nodeType":"StructuredDocumentation","src":"1968:65:2","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":620,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"2047:12:2","nodeType":"FunctionDefinition","parameters":{"id":606,"nodeType":"ParameterList","parameters":[],"src":"2059:2:2"},"returnParameters":{"id":609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":620,"src":"2091:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":607,"name":"address","nodeType":"ElementaryTypeName","src":"2091:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2090:9:2"},"scope":697,"src":"2038:168:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[862],"body":{"id":647,"nodeType":"Block","src":"2603:168:2","statements":[{"assignments":[631],"declarations":[{"constant":false,"id":631,"mutability":"mutable","name":"$","nameLocation":"2641:1:2","nodeType":"VariableDeclaration","scope":647,"src":"2613:29:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":630,"nodeType":"UserDefinedTypeName","pathNode":{"id":629,"name":"Ownable2StepStorage","nameLocations":["2613:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":575,"src":"2613:19:2"},"referencedDeclaration":575,"src":"2613:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":634,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":632,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"2645:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2645:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2613:57:2"},{"expression":{"id":639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":635,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":631,"src":"2680:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2682:13:2","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":574,"src":"2680:15:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":638,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":623,"src":"2698:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2680:26:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":640,"nodeType":"ExpressionStatement","src":"2680:26:2"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":642,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"2746:5:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:7:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":644,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":623,"src":"2755:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":641,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":592,"src":"2721:24:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":646,"nodeType":"EmitStatement","src":"2716:48:2"}]},"documentation":{"id":621,"nodeType":"StructuredDocumentation","src":"2212:307:2","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"functionSelector":"f2fde38b","id":648,"implemented":true,"kind":"function","modifiers":[{"id":627,"kind":"modifierInvocation","modifierName":{"id":626,"name":"onlyOwner","nameLocations":["2593:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"2593:9:2"},"nodeType":"ModifierInvocation","src":"2593:9:2"}],"name":"transferOwnership","nameLocation":"2533:17:2","nodeType":"FunctionDefinition","overrides":{"id":625,"nodeType":"OverrideSpecifier","overrides":[],"src":"2584:8:2"},"parameters":{"id":624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":623,"mutability":"mutable","name":"newOwner","nameLocation":"2559:8:2","nodeType":"VariableDeclaration","scope":648,"src":"2551:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":622,"name":"address","nodeType":"ElementaryTypeName","src":"2551:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2550:18:2"},"returnParameters":{"id":628,"nodeType":"ParameterList","parameters":[],"src":"2603:0:2"},"scope":697,"src":"2524:247:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[891],"body":{"id":671,"nodeType":"Block","src":"3027:150:2","statements":[{"assignments":[657],"declarations":[{"constant":false,"id":657,"mutability":"mutable","name":"$","nameLocation":"3065:1:2","nodeType":"VariableDeclaration","scope":671,"src":"3037:29:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"},"typeName":{"id":656,"nodeType":"UserDefinedTypeName","pathNode":{"id":655,"name":"Ownable2StepStorage","nameLocations":["3037:19:2"],"nodeType":"IdentifierPath","referencedDeclaration":575,"src":"3037:19:2"},"referencedDeclaration":575,"src":"3037:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage"}},"visibility":"internal"}],"id":660,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":658,"name":"_getOwnable2StepStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"3069:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$575_storage_ptr_$","typeString":"function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3037:57:2"},{"expression":{"id":663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3104:22:2","subExpression":{"expression":{"id":661,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"3111:1:2","typeDescriptions":{"typeIdentifier":"t_struct$_Ownable2StepStorage_$575_storage_ptr","typeString":"struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer"}},"id":662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3113:13:2","memberName":"_pendingOwner","nodeType":"MemberAccess","referencedDeclaration":574,"src":"3111:15:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":664,"nodeType":"ExpressionStatement","src":"3104:22:2"},{"expression":{"arguments":[{"id":668,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"3161:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":665,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3136:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2StepUpgradeable_$697_$","typeString":"type(contract super Ownable2StepUpgradeable)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3142:18:2","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":891,"src":"3136:24:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":670,"nodeType":"ExpressionStatement","src":"3136:34:2"}]},"documentation":{"id":649,"nodeType":"StructuredDocumentation","src":"2777:173:2","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":672,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2964:18:2","nodeType":"FunctionDefinition","overrides":{"id":653,"nodeType":"OverrideSpecifier","overrides":[],"src":"3018:8:2"},"parameters":{"id":652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"newOwner","nameLocation":"2991:8:2","nodeType":"VariableDeclaration","scope":672,"src":"2983:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":650,"name":"address","nodeType":"ElementaryTypeName","src":"2983:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2982:18:2"},"returnParameters":{"id":654,"nodeType":"ParameterList","parameters":[],"src":"3027:0:2"},"scope":697,"src":"2955:222:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":695,"nodeType":"Block","src":"3299:187:2","statements":[{"assignments":[677],"declarations":[{"constant":false,"id":677,"mutability":"mutable","name":"sender","nameLocation":"3317:6:2","nodeType":"VariableDeclaration","scope":695,"src":"3309:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":676,"name":"address","nodeType":"ElementaryTypeName","src":"3309:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":680,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":678,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"3326:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3309:29:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":681,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":620,"src":"3352:12:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3352:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":683,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"3370:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3352:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":690,"nodeType":"IfStatement","src":"3348:96:2","trueBody":{"id":689,"nodeType":"Block","src":"3378:66:2","statements":[{"errorCall":{"arguments":[{"id":686,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"3426:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":685,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"3399:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3399:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":688,"nodeType":"RevertStatement","src":"3392:41:2"}]}},{"expression":{"arguments":[{"id":692,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":677,"src":"3472:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":691,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[672],"referencedDeclaration":672,"src":"3453:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3453:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":694,"nodeType":"ExpressionStatement","src":"3453:26:2"}]},"documentation":{"id":673,"nodeType":"StructuredDocumentation","src":"3183:69:2","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":696,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"3266:15:2","nodeType":"FunctionDefinition","parameters":{"id":674,"nodeType":"ParameterList","parameters":[],"src":"3281:2:2"},"returnParameters":{"id":675,"nodeType":"ParameterList","parameters":[],"src":"3299:0:2"},"scope":697,"src":"3257:229:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":698,"src":"1070:2418:2","usedErrors":[728,733,909,912],"usedEvents":[592,739,917]}],"src":"107:3382:2"},"id":2},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1192],"Initializable":[1146],"OwnableUpgradeable":[892]},"id":893,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":699,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:3"},{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","file":"../utils/ContextUpgradeable.sol","id":701,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":893,"sourceUnit":1193,"src":"128:67:3","symbolAliases":[{"foreign":{"id":700,"name":"ContextUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"136:18:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":703,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":893,"sourceUnit":1147,"src":"196:63:3","symbolAliases":[{"foreign":{"id":702,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"204:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":705,"name":"Initializable","nameLocations":["789:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":1146,"src":"789:13:3"},"id":706,"nodeType":"InheritanceSpecifier","src":"789:13:3"},{"baseName":{"id":707,"name":"ContextUpgradeable","nameLocations":["804:18:3"],"nodeType":"IdentifierPath","referencedDeclaration":1192,"src":"804:18:3"},"id":708,"nodeType":"InheritanceSpecifier","src":"804:18:3"}],"canonicalName":"OwnableUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":704,"nodeType":"StructuredDocumentation","src":"261:487:3","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":892,"linearizedBaseContracts":[892,1192,1146],"name":"OwnableUpgradeable","nameLocation":"767:18:3","nodeType":"ContractDefinition","nodes":[{"canonicalName":"OwnableUpgradeable.OwnableStorage","documentation":{"id":709,"nodeType":"StructuredDocumentation","src":"829:65:3","text":"@custom:storage-location erc7201:openzeppelin.storage.Ownable"},"id":712,"members":[{"constant":false,"id":711,"mutability":"mutable","name":"_owner","nameLocation":"939:6:3","nodeType":"VariableDeclaration","scope":712,"src":"931:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":710,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"OwnableStorage","nameLocation":"906:14:3","nodeType":"StructDefinition","scope":892,"src":"899:53:3","visibility":"public"},{"constant":true,"id":715,"mutability":"constant","name":"OwnableStorageLocation","nameLocation":"1094:22:3","nodeType":"VariableDeclaration","scope":892,"src":"1069:116:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1069:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030","id":714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:66:3","typeDescriptions":{"typeIdentifier":"t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1","typeString":"int_const 6517...(69 digits omitted)...7328"},"value":"0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300"},"visibility":"private"},{"body":{"id":722,"nodeType":"Block","src":"1270:81:3","statements":[{"AST":{"nativeSrc":"1289:56:3","nodeType":"YulBlock","src":"1289:56:3","statements":[{"nativeSrc":"1303:32:3","nodeType":"YulAssignment","src":"1303:32:3","value":{"name":"OwnableStorageLocation","nativeSrc":"1313:22:3","nodeType":"YulIdentifier","src":"1313:22:3"},"variableNames":[{"name":"$.slot","nativeSrc":"1303:6:3","nodeType":"YulIdentifier","src":"1303:6:3"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":719,"isOffset":false,"isSlot":true,"src":"1303:6:3","suffix":"slot","valueSize":1},{"declaration":715,"isOffset":false,"isSlot":false,"src":"1313:22:3","valueSize":1}],"id":721,"nodeType":"InlineAssembly","src":"1280:65:3"}]},"id":723,"implemented":true,"kind":"function","modifiers":[],"name":"_getOwnableStorage","nameLocation":"1201:18:3","nodeType":"FunctionDefinition","parameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"1219:2:3"},"returnParameters":{"id":720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":719,"mutability":"mutable","name":"$","nameLocation":"1267:1:3","nodeType":"VariableDeclaration","scope":723,"src":"1244:24:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":718,"nodeType":"UserDefinedTypeName","pathNode":{"id":717,"name":"OwnableStorage","nameLocations":["1244:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":712,"src":"1244:14:3"},"referencedDeclaration":712,"src":"1244:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"src":"1243:26:3"},"scope":892,"src":"1192:159:3","stateMutability":"pure","virtual":false,"visibility":"private"},{"documentation":{"id":724,"nodeType":"StructuredDocumentation","src":"1357:85:3","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":728,"name":"OwnableUnauthorizedAccount","nameLocation":"1453:26:3","nodeType":"ErrorDefinition","parameters":{"id":727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":726,"mutability":"mutable","name":"account","nameLocation":"1488:7:3","nodeType":"VariableDeclaration","scope":728,"src":"1480:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":725,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1479:17:3"},"src":"1447:50:3"},{"documentation":{"id":729,"nodeType":"StructuredDocumentation","src":"1503:82:3","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":733,"name":"OwnableInvalidOwner","nameLocation":"1596:19:3","nodeType":"ErrorDefinition","parameters":{"id":732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":731,"mutability":"mutable","name":"owner","nameLocation":"1624:5:3","nodeType":"VariableDeclaration","scope":733,"src":"1616:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":730,"name":"address","nodeType":"ElementaryTypeName","src":"1616:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1615:15:3"},"src":"1590:41:3"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":739,"name":"OwnershipTransferred","nameLocation":"1643:20:3","nodeType":"EventDefinition","parameters":{"id":738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":735,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1680:13:3","nodeType":"VariableDeclaration","scope":739,"src":"1664:29:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":734,"name":"address","nodeType":"ElementaryTypeName","src":"1664:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":737,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1711:8:3","nodeType":"VariableDeclaration","scope":739,"src":"1695:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":736,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:57:3"},"src":"1637:84:3"},{"body":{"id":751,"nodeType":"Block","src":"1919:55:3","statements":[{"expression":{"arguments":[{"id":748,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":742,"src":"1954:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":747,"name":"__Ownable_init_unchained","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":779,"src":"1929:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":750,"nodeType":"ExpressionStatement","src":"1929:38:3"}]},"documentation":{"id":740,"nodeType":"StructuredDocumentation","src":"1727:115:3","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":752,"implemented":true,"kind":"function","modifiers":[{"id":745,"kind":"modifierInvocation","modifierName":{"id":744,"name":"onlyInitializing","nameLocations":["1902:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"1902:16:3"},"nodeType":"ModifierInvocation","src":"1902:16:3"}],"name":"__Ownable_init","nameLocation":"1856:14:3","nodeType":"FunctionDefinition","parameters":{"id":743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":742,"mutability":"mutable","name":"initialOwner","nameLocation":"1879:12:3","nodeType":"VariableDeclaration","scope":752,"src":"1871:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":741,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1870:22:3"},"returnParameters":{"id":746,"nodeType":"ParameterList","parameters":[],"src":"1919:0:3"},"scope":892,"src":"1847:127:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":778,"nodeType":"Block","src":"2062:153:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":759,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"2076:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:3","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":761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2092:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":760,"name":"address","nodeType":"ElementaryTypeName","src":"2092:7:3","typeDescriptions":{}}},"id":763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2092:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2076:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":773,"nodeType":"IfStatement","src":"2072:95:3","trueBody":{"id":772,"nodeType":"Block","src":"2104:63:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:3","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":767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2145:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"2145:7:3","typeDescriptions":{}}},"id":769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2145:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":765,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":733,"src":"2125:19:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2125:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":771,"nodeType":"RevertStatement","src":"2118:38:3"}]}},{"expression":{"arguments":[{"id":775,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"2195:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":774,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"2176:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2176:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":777,"nodeType":"ExpressionStatement","src":"2176:32:3"}]},"id":779,"implemented":true,"kind":"function","modifiers":[{"id":757,"kind":"modifierInvocation","modifierName":{"id":756,"name":"onlyInitializing","nameLocations":["2045:16:3"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"2045:16:3"},"nodeType":"ModifierInvocation","src":"2045:16:3"}],"name":"__Ownable_init_unchained","nameLocation":"1989:24:3","nodeType":"FunctionDefinition","parameters":{"id":755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":754,"mutability":"mutable","name":"initialOwner","nameLocation":"2022:12:3","nodeType":"VariableDeclaration","scope":779,"src":"2014:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":753,"name":"address","nodeType":"ElementaryTypeName","src":"2014:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2013:22:3"},"returnParameters":{"id":758,"nodeType":"ParameterList","parameters":[],"src":"2062:0:3"},"scope":892,"src":"1980:235:3","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":786,"nodeType":"Block","src":"2324:41:3","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":782,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"2334:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":784,"nodeType":"ExpressionStatement","src":"2334:13:3"},{"id":785,"nodeType":"PlaceholderStatement","src":"2357:1:3"}]},"documentation":{"id":780,"nodeType":"StructuredDocumentation","src":"2221:77:3","text":" @dev Throws if called by any account other than the owner."},"id":787,"name":"onlyOwner","nameLocation":"2312:9:3","nodeType":"ModifierDefinition","parameters":{"id":781,"nodeType":"ParameterList","parameters":[],"src":"2321:2:3"},"src":"2303:62:3","virtual":false,"visibility":"internal"},{"body":{"id":802,"nodeType":"Block","src":"2496:89:3","statements":[{"assignments":[795],"declarations":[{"constant":false,"id":795,"mutability":"mutable","name":"$","nameLocation":"2529:1:3","nodeType":"VariableDeclaration","scope":802,"src":"2506:24:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":794,"nodeType":"UserDefinedTypeName","pathNode":{"id":793,"name":"OwnableStorage","nameLocations":["2506:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":712,"src":"2506:14:3"},"referencedDeclaration":712,"src":"2506:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"id":798,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":796,"name":"_getOwnableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"2533:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$712_storage_ptr_$","typeString":"function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2506:47:3"},{"expression":{"expression":{"id":799,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":795,"src":"2570:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2572:6:3","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":711,"src":"2570:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":792,"id":801,"nodeType":"Return","src":"2563:15:3"}]},"documentation":{"id":788,"nodeType":"StructuredDocumentation","src":"2371:65:3","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":803,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"2450:5:3","nodeType":"FunctionDefinition","parameters":{"id":789,"nodeType":"ParameterList","parameters":[],"src":"2455:2:3"},"returnParameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":803,"src":"2487:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":790,"name":"address","nodeType":"ElementaryTypeName","src":"2487:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2486:9:3"},"scope":892,"src":"2441:144:3","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":819,"nodeType":"Block","src":"2703:117:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":807,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"2717:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:7:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":809,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"2728:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2717:23:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":818,"nodeType":"IfStatement","src":"2713:101:3","trueBody":{"id":817,"nodeType":"Block","src":"2742:72:3","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":813,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"2790:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":812,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"2763:26:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":816,"nodeType":"RevertStatement","src":"2756:47:3"}]}}]},"documentation":{"id":804,"nodeType":"StructuredDocumentation","src":"2591:62:3","text":" @dev Throws if the sender is not the owner."},"id":820,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"2667:11:3","nodeType":"FunctionDefinition","parameters":{"id":805,"nodeType":"ParameterList","parameters":[],"src":"2678:2:3"},"returnParameters":{"id":806,"nodeType":"ParameterList","parameters":[],"src":"2703:0:3"},"scope":892,"src":"2658:162:3","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":833,"nodeType":"Block","src":"3209:47:3","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:3","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":828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":827,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:3","typeDescriptions":{}}},"id":830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":826,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"3219:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3219:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":832,"nodeType":"ExpressionStatement","src":"3219:30:3"}]},"documentation":{"id":821,"nodeType":"StructuredDocumentation","src":"2826:324:3","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":834,"implemented":true,"kind":"function","modifiers":[{"id":824,"kind":"modifierInvocation","modifierName":{"id":823,"name":"onlyOwner","nameLocations":["3199:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"3199:9:3"},"nodeType":"ModifierInvocation","src":"3199:9:3"}],"name":"renounceOwnership","nameLocation":"3164:17:3","nodeType":"FunctionDefinition","parameters":{"id":822,"nodeType":"ParameterList","parameters":[],"src":"3181:2:3"},"returnParameters":{"id":825,"nodeType":"ParameterList","parameters":[],"src":"3209:0:3"},"scope":892,"src":"3155:101:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":861,"nodeType":"Block","src":"3475:145:3","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":842,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"3489:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3509:1:3","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":844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3501:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":843,"name":"address","nodeType":"ElementaryTypeName","src":"3501:7:3","typeDescriptions":{}}},"id":846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3501:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3489:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":856,"nodeType":"IfStatement","src":"3485:91:3","trueBody":{"id":855,"nodeType":"Block","src":"3513:63:3","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3562:1:3","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":850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3554:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":849,"name":"address","nodeType":"ElementaryTypeName","src":"3554:7:3","typeDescriptions":{}}},"id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":848,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":733,"src":"3534:19:3","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3534:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":854,"nodeType":"RevertStatement","src":"3527:38:3"}]}},{"expression":{"arguments":[{"id":858,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"3604:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":857,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"3585:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3585:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":860,"nodeType":"ExpressionStatement","src":"3585:28:3"}]},"documentation":{"id":835,"nodeType":"StructuredDocumentation","src":"3262:138:3","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":862,"implemented":true,"kind":"function","modifiers":[{"id":840,"kind":"modifierInvocation","modifierName":{"id":839,"name":"onlyOwner","nameLocations":["3465:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"3465:9:3"},"nodeType":"ModifierInvocation","src":"3465:9:3"}],"name":"transferOwnership","nameLocation":"3414:17:3","nodeType":"FunctionDefinition","parameters":{"id":838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":837,"mutability":"mutable","name":"newOwner","nameLocation":"3440:8:3","nodeType":"VariableDeclaration","scope":862,"src":"3432:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":836,"name":"address","nodeType":"ElementaryTypeName","src":"3432:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3431:18:3"},"returnParameters":{"id":841,"nodeType":"ParameterList","parameters":[],"src":"3475:0:3"},"scope":892,"src":"3405:215:3","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":890,"nodeType":"Block","src":"3837:185:3","statements":[{"assignments":[870],"declarations":[{"constant":false,"id":870,"mutability":"mutable","name":"$","nameLocation":"3870:1:3","nodeType":"VariableDeclaration","scope":890,"src":"3847:24:3","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"},"typeName":{"id":869,"nodeType":"UserDefinedTypeName","pathNode":{"id":868,"name":"OwnableStorage","nameLocations":["3847:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":712,"src":"3847:14:3"},"referencedDeclaration":712,"src":"3847:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage"}},"visibility":"internal"}],"id":873,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":871,"name":"_getOwnableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":723,"src":"3874:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$712_storage_ptr_$","typeString":"function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3874:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3847:47:3"},{"assignments":[875],"declarations":[{"constant":false,"id":875,"mutability":"mutable","name":"oldOwner","nameLocation":"3912:8:3","nodeType":"VariableDeclaration","scope":890,"src":"3904:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":874,"name":"address","nodeType":"ElementaryTypeName","src":"3904:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":878,"initialValue":{"expression":{"id":876,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":870,"src":"3923:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3925:6:3","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":711,"src":"3923:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3904:27:3"},{"expression":{"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":870,"src":"3941:1:3","typeDescriptions":{"typeIdentifier":"t_struct$_OwnableStorage_$712_storage_ptr","typeString":"struct OwnableUpgradeable.OwnableStorage storage pointer"}},"id":881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3943:6:3","memberName":"_owner","nodeType":"MemberAccess","referencedDeclaration":711,"src":"3941:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":882,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"3952:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3941:19:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":884,"nodeType":"ExpressionStatement","src":"3941:19:3"},{"eventCall":{"arguments":[{"id":886,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"3996:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":887,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4006:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":885,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"3975:20:3","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":889,"nodeType":"EmitStatement","src":"3970:45:3"}]},"documentation":{"id":863,"nodeType":"StructuredDocumentation","src":"3626:143:3","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":891,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"3783:18:3","nodeType":"FunctionDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":865,"mutability":"mutable","name":"newOwner","nameLocation":"3810:8:3","nodeType":"VariableDeclaration","scope":891,"src":"3802:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":864,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3801:18:3"},"returnParameters":{"id":867,"nodeType":"ParameterList","parameters":[],"src":"3837:0:3"},"scope":892,"src":"3774:248:3","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":893,"src":"749:3275:3","usedErrors":[728,733,909,912],"usedEvents":[739,917]}],"src":"102:3923:3"},"id":3},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[1146]},"id":1147,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":894,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:4"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":895,"nodeType":"StructuredDocumentation","src":"139:2209:4","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n     function initialize() initializer public {\n         __ERC20_init(\"MyToken\", \"MTK\");\n     }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n     function initializeV2() reinitializer(2) public {\n         __ERC20Permit_init(\"MyToken\");\n     }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n     _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":1146,"linearizedBaseContracts":[1146],"name":"Initializable","nameLocation":"2367:13:4","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":896,"nodeType":"StructuredDocumentation","src":"2387:293:4","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":903,"members":[{"constant":false,"id":899,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:4","nodeType":"VariableDeclaration","scope":903,"src":"2813:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":898,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":902,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:4","nodeType":"VariableDeclaration","scope":903,"src":"2950:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":901,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:4","nodeType":"StructDefinition","scope":1146,"src":"2685:290:4","visibility":"public"},{"constant":true,"id":906,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:4","nodeType":"VariableDeclaration","scope":1146,"src":"3098:115:4","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:4","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":907,"nodeType":"StructuredDocumentation","src":"3220:60:4","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":909,"name":"InvalidInitialization","nameLocation":"3291:21:4","nodeType":"ErrorDefinition","parameters":{"id":908,"nodeType":"ParameterList","parameters":[],"src":"3312:2:4"},"src":"3285:30:4"},{"documentation":{"id":910,"nodeType":"StructuredDocumentation","src":"3321:57:4","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":912,"name":"NotInitializing","nameLocation":"3389:15:4","nodeType":"ErrorDefinition","parameters":{"id":911,"nodeType":"ParameterList","parameters":[],"src":"3404:2:4"},"src":"3383:24:4"},{"anonymous":false,"documentation":{"id":913,"nodeType":"StructuredDocumentation","src":"3413:90:4","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":917,"name":"Initialized","nameLocation":"3514:11:4","nodeType":"EventDefinition","parameters":{"id":916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":915,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:4","nodeType":"VariableDeclaration","scope":917,"src":"3526:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":914,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:4"},"src":"3508:34:4"},{"body":{"id":999,"nodeType":"Block","src":"4092:1081:4","statements":[{"assignments":[922],"declarations":[{"constant":false,"id":922,"mutability":"mutable","name":"$","nameLocation":"4187:1:4","nodeType":"VariableDeclaration","scope":999,"src":"4158:30:4","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":921,"nodeType":"UserDefinedTypeName","pathNode":{"id":920,"name":"InitializableStorage","nameLocations":["4158:20:4"],"nodeType":"IdentifierPath","referencedDeclaration":903,"src":"4158:20:4"},"referencedDeclaration":903,"src":"4158:20:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":925,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":923,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"4191:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:4"},{"assignments":[927],"declarations":[{"constant":false,"id":927,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:4","nodeType":"VariableDeclaration","scope":999,"src":"4279:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":926,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":931,"initialValue":{"id":930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:4","subExpression":{"expression":{"id":928,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4302:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"4302:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:4"},{"assignments":[933],"declarations":[{"constant":false,"id":933,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:4","nodeType":"VariableDeclaration","scope":999,"src":"4327:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":932,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":936,"initialValue":{"expression":{"id":934,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4348:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"4348:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:4"},{"assignments":[938],"declarations":[{"constant":false,"id":938,"mutability":"mutable","name":"initialSetup","nameLocation":"4711:12:4","nodeType":"VariableDeclaration","scope":999,"src":"4706:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":937,"name":"bool","nodeType":"ElementaryTypeName","src":"4706:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":944,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":939,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"4726:11:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4741:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4726:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":942,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"4746:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4726:34:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4706:54:4"},{"assignments":[946],"declarations":[{"constant":false,"id":946,"mutability":"mutable","name":"construction","nameLocation":"4775:12:4","nodeType":"VariableDeclaration","scope":999,"src":"4770:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":945,"name":"bool","nodeType":"ElementaryTypeName","src":"4770:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":959,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":947,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":933,"src":"4790:11:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4805:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4790:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":952,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4818:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$1146","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$1146","typeString":"contract Initializable"}],"id":951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":950,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:4","typeDescriptions":{}}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4824:4:4","memberName":"code","nodeType":"MemberAccess","src":"4810:18:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4829:6:4","memberName":"length","nodeType":"MemberAccess","src":"4810:25:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4810:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:50:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4770:70:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4855:13:4","subExpression":{"id":960,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":938,"src":"4856:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4872:13:4","subExpression":{"id":962,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":946,"src":"4873:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":969,"nodeType":"IfStatement","src":"4851:91:4","trueBody":{"id":968,"nodeType":"Block","src":"4887:55:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":965,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"4908:21:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":967,"nodeType":"RevertStatement","src":"4901:30:4"}]}},{"expression":{"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":970,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4951:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4953:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"4951:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4968:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4951:18:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":975,"nodeType":"ExpressionStatement","src":"4951:18:4"},{"condition":{"id":976,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"4983:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":984,"nodeType":"IfStatement","src":"4979:67:4","trueBody":{"id":983,"nodeType":"Block","src":"4999:47:4","statements":[{"expression":{"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":977,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"5013:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5015:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"5013:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5031:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5013:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":982,"nodeType":"ExpressionStatement","src":"5013:22:4"}]}},{"id":985,"nodeType":"PlaceholderStatement","src":"5055:1:4"},{"condition":{"id":986,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":927,"src":"5070:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":998,"nodeType":"IfStatement","src":"5066:101:4","trueBody":{"id":997,"nodeType":"Block","src":"5086:81:4","statements":[{"expression":{"id":991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":987,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"5100:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5102:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"5100:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5118:5:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5100:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":992,"nodeType":"ExpressionStatement","src":"5100:23:4"},{"eventCall":{"arguments":[{"hexValue":"31","id":994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5154:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":993,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":917,"src":"5142:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:14:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":996,"nodeType":"EmitStatement","src":"5137:19:4"}]}}]},"documentation":{"id":918,"nodeType":"StructuredDocumentation","src":"3548:516:4","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":1000,"name":"initializer","nameLocation":"4078:11:4","nodeType":"ModifierDefinition","parameters":{"id":919,"nodeType":"ParameterList","parameters":[],"src":"4089:2:4"},"src":"4069:1104:4","virtual":false,"visibility":"internal"},{"body":{"id":1046,"nodeType":"Block","src":"6291:392:4","statements":[{"assignments":[1007],"declarations":[{"constant":false,"id":1007,"mutability":"mutable","name":"$","nameLocation":"6386:1:4","nodeType":"VariableDeclaration","scope":1046,"src":"6357:30:4","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":1006,"nodeType":"UserDefinedTypeName","pathNode":{"id":1005,"name":"InitializableStorage","nameLocations":["6357:20:4"],"nodeType":"IdentifierPath","referencedDeclaration":903,"src":"6357:20:4"},"referencedDeclaration":903,"src":"6357:20:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":1010,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1008,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"6390:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6357:59:4"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1011,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6431:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6433:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"6431:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1013,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6450:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"6450:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1015,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"6468:7:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6450:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:44:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1022,"nodeType":"IfStatement","src":"6427:105:4","trueBody":{"id":1021,"nodeType":"Block","src":"6477:55:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1018,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"6498:21:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1020,"nodeType":"RevertStatement","src":"6491:30:4"}]}},{"expression":{"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1023,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6541:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6543:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"6541:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1026,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"6558:7:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6541:24:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1028,"nodeType":"ExpressionStatement","src":"6541:24:4"},{"expression":{"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1029,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6575:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6577:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"6575:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6593:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1034,"nodeType":"ExpressionStatement","src":"6575:22:4"},{"id":1035,"nodeType":"PlaceholderStatement","src":"6607:1:4"},{"expression":{"id":1040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1036,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"6618:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6620:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"6618:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6636:5:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6618:23:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1041,"nodeType":"ExpressionStatement","src":"6618:23:4"},{"eventCall":{"arguments":[{"id":1043,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"6668:7:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1042,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":917,"src":"6656:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1045,"nodeType":"EmitStatement","src":"6651:25:4"}]},"documentation":{"id":1001,"nodeType":"StructuredDocumentation","src":"5179:1068:4","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":1047,"name":"reinitializer","nameLocation":"6261:13:4","nodeType":"ModifierDefinition","parameters":{"id":1004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1003,"mutability":"mutable","name":"version","nameLocation":"6282:7:4","nodeType":"VariableDeclaration","scope":1047,"src":"6275:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1002,"name":"uint64","nodeType":"ElementaryTypeName","src":"6275:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6274:16:4"},"src":"6252:431:4","virtual":false,"visibility":"internal"},{"body":{"id":1054,"nodeType":"Block","src":"6921:48:4","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1050,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1068,"src":"6931:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1052,"nodeType":"ExpressionStatement","src":"6931:20:4"},{"id":1053,"nodeType":"PlaceholderStatement","src":"6961:1:4"}]},"documentation":{"id":1048,"nodeType":"StructuredDocumentation","src":"6689:199:4","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":1055,"name":"onlyInitializing","nameLocation":"6902:16:4","nodeType":"ModifierDefinition","parameters":{"id":1049,"nodeType":"ParameterList","parameters":[],"src":"6918:2:4"},"src":"6893:76:4","virtual":false,"visibility":"internal"},{"body":{"id":1067,"nodeType":"Block","src":"7136:89:4","statements":[{"condition":{"id":1061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7150:18:4","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1059,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1136,"src":"7151:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"IfStatement","src":"7146:73:4","trueBody":{"id":1065,"nodeType":"Block","src":"7170:49:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1062,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"7191:15:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7191:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1064,"nodeType":"RevertStatement","src":"7184:24:4"}]}}]},"documentation":{"id":1056,"nodeType":"StructuredDocumentation","src":"6975:104:4","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":1068,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7093:18:4","nodeType":"FunctionDefinition","parameters":{"id":1057,"nodeType":"ParameterList","parameters":[],"src":"7111:2:4"},"returnParameters":{"id":1058,"nodeType":"ParameterList","parameters":[],"src":"7136:0:4"},"scope":1146,"src":"7084:141:4","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1113,"nodeType":"Block","src":"7760:373:4","statements":[{"assignments":[1074],"declarations":[{"constant":false,"id":1074,"mutability":"mutable","name":"$","nameLocation":"7855:1:4","nodeType":"VariableDeclaration","scope":1113,"src":"7826:30:4","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":1073,"nodeType":"UserDefinedTypeName","pathNode":{"id":1072,"name":"InitializableStorage","nameLocations":["7826:20:4"],"nodeType":"IdentifierPath","referencedDeclaration":903,"src":"7826:20:4"},"referencedDeclaration":903,"src":"7826:20:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":1077,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1075,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"7859:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7859:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7826:59:4"},{"condition":{"expression":{"id":1078,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"7900:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7902:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"7900:15:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1084,"nodeType":"IfStatement","src":"7896:76:4","trueBody":{"id":1083,"nodeType":"Block","src":"7917:55:4","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1080,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"7938:21:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1082,"nodeType":"RevertStatement","src":"7931:30:4"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1085,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"7985:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7987:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"7985:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":1089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8008:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1088,"name":"uint64","nodeType":"ElementaryTypeName","src":"8008:6:4","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":1087,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8003:4:4","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8003:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":1091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8016:3:4","memberName":"max","nodeType":"MemberAccess","src":"8003:16:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7985:34:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1112,"nodeType":"IfStatement","src":"7981:146:4","trueBody":{"id":1111,"nodeType":"Block","src":"8021:106:4","statements":[{"expression":{"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1093,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"8035:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1095,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"8035:14:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":1098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8057:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1097,"name":"uint64","nodeType":"ElementaryTypeName","src":"8057:6:4","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":1096,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8052:4:4","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":1100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8065:3:4","memberName":"max","nodeType":"MemberAccess","src":"8052:16:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8035:33:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":1102,"nodeType":"ExpressionStatement","src":"8035:33:4"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":1106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8104:6:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1105,"name":"uint64","nodeType":"ElementaryTypeName","src":"8104:6:4","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":1104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8099:4:4","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":1108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8112:3:4","memberName":"max","nodeType":"MemberAccess","src":"8099:16:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1103,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":917,"src":"8087:11:4","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":1109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:29:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1110,"nodeType":"EmitStatement","src":"8082:34:4"}]}}]},"documentation":{"id":1069,"nodeType":"StructuredDocumentation","src":"7231:475:4","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":1114,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7720:20:4","nodeType":"FunctionDefinition","parameters":{"id":1070,"nodeType":"ParameterList","parameters":[],"src":"7740:2:4"},"returnParameters":{"id":1071,"nodeType":"ParameterList","parameters":[],"src":"7760:0:4"},"scope":1146,"src":"7711:422:4","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1124,"nodeType":"Block","src":"8308:63:4","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1120,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"8325:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8325:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:12:4","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":899,"src":"8325:39:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":1119,"id":1123,"nodeType":"Return","src":"8318:46:4"}]},"documentation":{"id":1115,"nodeType":"StructuredDocumentation","src":"8139:99:4","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":1125,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8252:22:4","nodeType":"FunctionDefinition","parameters":{"id":1116,"nodeType":"ParameterList","parameters":[],"src":"8274:2:4"},"returnParameters":{"id":1119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1125,"src":"8300:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1117,"name":"uint64","nodeType":"ElementaryTypeName","src":"8300:6:4","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8299:8:4"},"scope":1146,"src":"8243:128:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1135,"nodeType":"Block","src":"8543:64:4","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1131,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"8560:24:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$903_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":1133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:13:4","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":902,"src":"8560:40:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1130,"id":1134,"nodeType":"Return","src":"8553:47:4"}]},"documentation":{"id":1126,"nodeType":"StructuredDocumentation","src":"8377:105:4","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":1136,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8496:15:4","nodeType":"FunctionDefinition","parameters":{"id":1127,"nodeType":"ParameterList","parameters":[],"src":"8511:2:4"},"returnParameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1136,"src":"8537:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1128,"name":"bool","nodeType":"ElementaryTypeName","src":"8537:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8536:6:4"},"scope":1146,"src":"8487:120:4","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1144,"nodeType":"Block","src":"8827:80:4","statements":[{"AST":{"nativeSrc":"8846:55:4","nodeType":"YulBlock","src":"8846:55:4","statements":[{"nativeSrc":"8860:31:4","nodeType":"YulAssignment","src":"8860:31:4","value":{"name":"INITIALIZABLE_STORAGE","nativeSrc":"8870:21:4","nodeType":"YulIdentifier","src":"8870:21:4"},"variableNames":[{"name":"$.slot","nativeSrc":"8860:6:4","nodeType":"YulIdentifier","src":"8860:6:4"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1141,"isOffset":false,"isSlot":true,"src":"8860:6:4","suffix":"slot","valueSize":1},{"declaration":906,"isOffset":false,"isSlot":false,"src":"8870:21:4","valueSize":1}],"id":1143,"nodeType":"InlineAssembly","src":"8837:64:4"}]},"documentation":{"id":1137,"nodeType":"StructuredDocumentation","src":"8613:67:4","text":" @dev Returns a pointer to the storage namespace."},"id":1145,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"8746:24:4","nodeType":"FunctionDefinition","parameters":{"id":1138,"nodeType":"ParameterList","parameters":[],"src":"8770:2:4"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"$","nameLocation":"8824:1:4","nodeType":"VariableDeclaration","scope":1145,"src":"8795:30:4","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":1140,"nodeType":"UserDefinedTypeName","pathNode":{"id":1139,"name":"InitializableStorage","nameLocations":["8795:20:4"],"nodeType":"IdentifierPath","referencedDeclaration":903,"src":"8795:20:4"},"referencedDeclaration":903,"src":"8795:20:4","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$903_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"8794:32:4"},"scope":1146,"src":"8737:170:4","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1147,"src":"2349:6560:4","usedErrors":[909,912],"usedEvents":[917]}],"src":"113:8797:4"},"id":4},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol","exportedSymbols":{"ContextUpgradeable":[1192],"Initializable":[1146]},"id":1193,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1148,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:5"},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"../proxy/utils/Initializable.sol","id":1150,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1193,"sourceUnit":1147,"src":"126:63:5","symbolAliases":[{"foreign":{"id":1149,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"134:13:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1152,"name":"Initializable","nameLocations":["728:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":1146,"src":"728:13:5"},"id":1153,"nodeType":"InheritanceSpecifier","src":"728:13:5"}],"canonicalName":"ContextUpgradeable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1151,"nodeType":"StructuredDocumentation","src":"191:496:5","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":1192,"linearizedBaseContracts":[1192,1146],"name":"ContextUpgradeable","nameLocation":"706:18:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":1158,"nodeType":"Block","src":"800:7:5","statements":[]},"id":1159,"implemented":true,"kind":"function","modifiers":[{"id":1156,"kind":"modifierInvocation","modifierName":{"id":1155,"name":"onlyInitializing","nameLocations":["783:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"783:16:5"},"nodeType":"ModifierInvocation","src":"783:16:5"}],"name":"__Context_init","nameLocation":"757:14:5","nodeType":"FunctionDefinition","parameters":{"id":1154,"nodeType":"ParameterList","parameters":[],"src":"771:2:5"},"returnParameters":{"id":1157,"nodeType":"ParameterList","parameters":[],"src":"800:0:5"},"scope":1192,"src":"748:59:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1164,"nodeType":"Block","src":"875:7:5","statements":[]},"id":1165,"implemented":true,"kind":"function","modifiers":[{"id":1162,"kind":"modifierInvocation","modifierName":{"id":1161,"name":"onlyInitializing","nameLocations":["858:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"858:16:5"},"nodeType":"ModifierInvocation","src":"858:16:5"}],"name":"__Context_init_unchained","nameLocation":"822:24:5","nodeType":"FunctionDefinition","parameters":{"id":1160,"nodeType":"ParameterList","parameters":[],"src":"846:2:5"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[],"src":"875:0:5"},"scope":1192,"src":"813:69:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1173,"nodeType":"Block","src":"949:34:5","statements":[{"expression":{"expression":{"id":1170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"966:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"970:6:5","memberName":"sender","nodeType":"MemberAccess","src":"966:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1169,"id":1172,"nodeType":"Return","src":"959:17:5"}]},"id":1174,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"896:10:5","nodeType":"FunctionDefinition","parameters":{"id":1166,"nodeType":"ParameterList","parameters":[],"src":"906:2:5"},"returnParameters":{"id":1169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1174,"src":"940:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1167,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"939:9:5"},"scope":1192,"src":"887:96:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1182,"nodeType":"Block","src":"1056:32:5","statements":[{"expression":{"expression":{"id":1179,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1073:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1077:4:5","memberName":"data","nodeType":"MemberAccess","src":"1073:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1178,"id":1181,"nodeType":"Return","src":"1066:15:5"}]},"id":1183,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"998:8:5","nodeType":"FunctionDefinition","parameters":{"id":1175,"nodeType":"ParameterList","parameters":[],"src":"1006:2:5"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1183,"src":"1040:14:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1176,"name":"bytes","nodeType":"ElementaryTypeName","src":"1040:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1039:16:5"},"scope":1192,"src":"989:99:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1190,"nodeType":"Block","src":"1166:25:5","statements":[{"expression":{"hexValue":"30","id":1188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1187,"id":1189,"nodeType":"Return","src":"1176:8:5"}]},"id":1191,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"1103:20:5","nodeType":"FunctionDefinition","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"1123:2:5"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1191,"src":"1157:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1156:9:5"},"scope":1192,"src":"1094:97:5","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1193,"src":"688:505:5","usedErrors":[909,912],"usedEvents":[917]}],"src":"101:1093:5"},"id":5},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[1488],"Context":[3417],"ERC165":[3756],"IAccessControl":[1571]},"id":1489,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1194,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:6"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":1196,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1489,"sourceUnit":1572,"src":"134:52:6","symbolAliases":[{"foreign":{"id":1195,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"142:14:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":1198,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1489,"sourceUnit":3418,"src":"187:45:6","symbolAliases":[{"foreign":{"id":1197,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"195:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":1200,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1489,"sourceUnit":3757,"src":"233:57:6","symbolAliases":[{"foreign":{"id":1199,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"241:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1202,"name":"Context","nameLocations":["1988:7:6"],"nodeType":"IdentifierPath","referencedDeclaration":3417,"src":"1988:7:6"},"id":1203,"nodeType":"InheritanceSpecifier","src":"1988:7:6"},{"baseName":{"id":1204,"name":"IAccessControl","nameLocations":["1997:14:6"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"1997:14:6"},"id":1205,"nodeType":"InheritanceSpecifier","src":"1997:14:6"},{"baseName":{"id":1206,"name":"ERC165","nameLocations":["2013:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":3756,"src":"2013:6:6"},"id":1207,"nodeType":"InheritanceSpecifier","src":"2013:6:6"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":1201,"nodeType":"StructuredDocumentation","src":"292:1660:6","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n     require(hasRole(MY_ROLE, msg.sender));\n     ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role."},"fullyImplemented":true,"id":1488,"linearizedBaseContracts":[1488,3756,3768,1571,3417],"name":"AccessControl","nameLocation":"1971:13:6","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":1214,"members":[{"constant":false,"id":1211,"mutability":"mutable","name":"hasRole","nameLocation":"2085:7:6","nodeType":"VariableDeclaration","scope":1214,"src":"2052:40:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":1210,"keyName":"account","keyNameLocation":"2068:7:6","keyType":{"id":1208,"name":"address","nodeType":"ElementaryTypeName","src":"2060:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2052:32:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1209,"name":"bool","nodeType":"ElementaryTypeName","src":"2079:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":1213,"mutability":"mutable","name":"adminRole","nameLocation":"2110:9:6","nodeType":"VariableDeclaration","scope":1214,"src":"2102:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2102:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2033:8:6","nodeType":"StructDefinition","scope":1488,"src":"2026:100:6","visibility":"public"},{"constant":false,"id":1219,"mutability":"mutable","name":"_roles","nameLocation":"2174:6:6","nodeType":"VariableDeclaration","scope":1488,"src":"2132:48:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":1218,"keyName":"role","keyNameLocation":"2148:4:6","keyType":{"id":1215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2140:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2132:33:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1217,"nodeType":"UserDefinedTypeName","pathNode":{"id":1216,"name":"RoleData","nameLocations":["2156:8:6"],"nodeType":"IdentifierPath","referencedDeclaration":1214,"src":"2156:8:6"},"referencedDeclaration":1214,"src":"2156:8:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":1222,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2211:18:6","nodeType":"VariableDeclaration","scope":1488,"src":"2187:49:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":1221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2232:4:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":1232,"nodeType":"Block","src":"2454:44:6","statements":[{"expression":{"arguments":[{"id":1228,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"2475:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1227,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[1286,1307],"referencedDeclaration":1286,"src":"2464:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":1229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2464:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1230,"nodeType":"ExpressionStatement","src":"2464:16:6"},{"id":1231,"nodeType":"PlaceholderStatement","src":"2490:1:6"}]},"documentation":{"id":1223,"nodeType":"StructuredDocumentation","src":"2243:174:6","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."},"id":1233,"name":"onlyRole","nameLocation":"2431:8:6","nodeType":"ModifierDefinition","parameters":{"id":1226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1225,"mutability":"mutable","name":"role","nameLocation":"2448:4:6","nodeType":"VariableDeclaration","scope":1233,"src":"2440:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2440:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2439:14:6"},"src":"2422:76:6","virtual":false,"visibility":"internal"},{"baseFunctions":[3755],"body":{"id":1254,"nodeType":"Block","src":"2656:111:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1242,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"2673:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1244,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"2693:14:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$1571_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$1571_$","typeString":"type(contract IAccessControl)"}],"id":1243,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2688:4:6","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2688:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$1571","typeString":"type(contract IAccessControl)"}},"id":1246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2709:11:6","memberName":"interfaceId","nodeType":"MemberAccess","src":"2688:32:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2673:47:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1250,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"2748:11:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1248,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2724:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$1488_$","typeString":"type(contract super AccessControl)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2730:17:6","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3755,"src":"2724:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2673:87:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1241,"id":1253,"nodeType":"Return","src":"2666:94:6"}]},"documentation":{"id":1234,"nodeType":"StructuredDocumentation","src":"2504:56:6","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1255,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2574:17:6","nodeType":"FunctionDefinition","overrides":{"id":1238,"nodeType":"OverrideSpecifier","overrides":[],"src":"2632:8:6"},"parameters":{"id":1237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1236,"mutability":"mutable","name":"interfaceId","nameLocation":"2599:11:6","nodeType":"VariableDeclaration","scope":1255,"src":"2592:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1235,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2592:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2591:20:6"},"returnParameters":{"id":1241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1255,"src":"2650:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1239,"name":"bool","nodeType":"ElementaryTypeName","src":"2650:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2649:6:6"},"scope":1488,"src":"2565:202:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1538],"body":{"id":1272,"nodeType":"Block","src":"2937:53:6","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":1265,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"2954:6:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1267,"indexExpression":{"id":1266,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"2961:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2954:12:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2967:7:6","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":1211,"src":"2954:20:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1270,"indexExpression":{"id":1269,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"2975:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2954:29:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1264,"id":1271,"nodeType":"Return","src":"2947:36:6"}]},"documentation":{"id":1256,"nodeType":"StructuredDocumentation","src":"2773:76:6","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":1273,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2863:7:6","nodeType":"FunctionDefinition","parameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"role","nameLocation":"2879:4:6","nodeType":"VariableDeclaration","scope":1273,"src":"2871:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2871:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"account","nameLocation":"2893:7:6","nodeType":"VariableDeclaration","scope":1273,"src":"2885:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1259,"name":"address","nodeType":"ElementaryTypeName","src":"2885:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2870:31:6"},"returnParameters":{"id":1264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1273,"src":"2931:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1262,"name":"bool","nodeType":"ElementaryTypeName","src":"2931:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2930:6:6"},"scope":1488,"src":"2854:136:6","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1285,"nodeType":"Block","src":"3255:47:6","statements":[{"expression":{"arguments":[{"id":1280,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"3276:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1281,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"3282:10:6","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":"3282:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1279,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[1286,1307],"referencedDeclaration":1307,"src":"3265:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":1283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1284,"nodeType":"ExpressionStatement","src":"3265:30:6"}]},"documentation":{"id":1274,"nodeType":"StructuredDocumentation","src":"2996:198:6","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."},"id":1286,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3208:10:6","nodeType":"FunctionDefinition","parameters":{"id":1277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1276,"mutability":"mutable","name":"role","nameLocation":"3227:4:6","nodeType":"VariableDeclaration","scope":1286,"src":"3219:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3219:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3218:14:6"},"returnParameters":{"id":1278,"nodeType":"ParameterList","parameters":[],"src":"3255:0:6"},"scope":1488,"src":"3199:103:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1306,"nodeType":"Block","src":"3505:124:6","statements":[{"condition":{"id":1298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3519:23:6","subExpression":{"arguments":[{"id":1295,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1289,"src":"3528:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1296,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"3534:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1294,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"3520:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3520:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1305,"nodeType":"IfStatement","src":"3515:108:6","trueBody":{"id":1304,"nodeType":"Block","src":"3544:79:6","statements":[{"errorCall":{"arguments":[{"id":1300,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"3598:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1301,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1289,"src":"3607:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1299,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"3565:32:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":1302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3565:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1303,"nodeType":"RevertStatement","src":"3558:54:6"}]}}]},"documentation":{"id":1287,"nodeType":"StructuredDocumentation","src":"3308:119:6","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."},"id":1307,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3441:10:6","nodeType":"FunctionDefinition","parameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1289,"mutability":"mutable","name":"role","nameLocation":"3460:4:6","nodeType":"VariableDeclaration","scope":1307,"src":"3452:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3452:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1291,"mutability":"mutable","name":"account","nameLocation":"3474:7:6","nodeType":"VariableDeclaration","scope":1307,"src":"3466:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1290,"name":"address","nodeType":"ElementaryTypeName","src":"3466:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3451:31:6"},"returnParameters":{"id":1293,"nodeType":"ParameterList","parameters":[],"src":"3505:0:6"},"scope":1488,"src":"3432:197:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1546],"body":{"id":1320,"nodeType":"Block","src":"3884:46:6","statements":[{"expression":{"expression":{"baseExpression":{"id":1315,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"3901:6:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1317,"indexExpression":{"id":1316,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"3908:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3901:12:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3914:9:6","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"3901:22:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1314,"id":1319,"nodeType":"Return","src":"3894:29:6"}]},"documentation":{"id":1308,"nodeType":"StructuredDocumentation","src":"3635:170:6","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":1321,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"3819:12:6","nodeType":"FunctionDefinition","parameters":{"id":1311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"role","nameLocation":"3840:4:6","nodeType":"VariableDeclaration","scope":1321,"src":"3832:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3832:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3831:14:6"},"returnParameters":{"id":1314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1313,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1321,"src":"3875:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3875:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3874:9:6"},"scope":1488,"src":"3810:120:6","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1554],"body":{"id":1339,"nodeType":"Block","src":"4320:42:6","statements":[{"expression":{"arguments":[{"id":1335,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"4341:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1336,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1326,"src":"4347:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1334,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1449,"src":"4330:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4330:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1338,"nodeType":"ExpressionStatement","src":"4330:25:6"}]},"documentation":{"id":1322,"nodeType":"StructuredDocumentation","src":"3936:285:6","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":1340,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":1330,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1324,"src":"4313:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1329,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"4300:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4300:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1332,"kind":"modifierInvocation","modifierName":{"id":1328,"name":"onlyRole","nameLocations":["4291:8:6"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"4291:8:6"},"nodeType":"ModifierInvocation","src":"4291:28:6"}],"name":"grantRole","nameLocation":"4235:9:6","nodeType":"FunctionDefinition","parameters":{"id":1327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1324,"mutability":"mutable","name":"role","nameLocation":"4253:4:6","nodeType":"VariableDeclaration","scope":1340,"src":"4245:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4245:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1326,"mutability":"mutable","name":"account","nameLocation":"4267:7:6","nodeType":"VariableDeclaration","scope":1340,"src":"4259:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1325,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4244:31:6"},"returnParameters":{"id":1333,"nodeType":"ParameterList","parameters":[],"src":"4320:0:6"},"scope":1488,"src":"4226:136:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1562],"body":{"id":1358,"nodeType":"Block","src":"4737:43:6","statements":[{"expression":{"arguments":[{"id":1354,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"4759:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1355,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4765:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1353,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"4747:11:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4747:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1357,"nodeType":"ExpressionStatement","src":"4747:26:6"}]},"documentation":{"id":1341,"nodeType":"StructuredDocumentation","src":"4368:269:6","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":1359,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":1349,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"4730:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1348,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"4717:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4717:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1351,"kind":"modifierInvocation","modifierName":{"id":1347,"name":"onlyRole","nameLocations":["4708:8:6"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"4708:8:6"},"nodeType":"ModifierInvocation","src":"4708:28:6"}],"name":"revokeRole","nameLocation":"4651:10:6","nodeType":"FunctionDefinition","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1343,"mutability":"mutable","name":"role","nameLocation":"4670:4:6","nodeType":"VariableDeclaration","scope":1359,"src":"4662:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4662:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"account","nameLocation":"4684:7:6","nodeType":"VariableDeclaration","scope":1359,"src":"4676:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1344,"name":"address","nodeType":"ElementaryTypeName","src":"4676:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4661:31:6"},"returnParameters":{"id":1352,"nodeType":"ParameterList","parameters":[],"src":"4737:0:6"},"scope":1488,"src":"4642:138:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1570],"body":{"id":1381,"nodeType":"Block","src":"5407:166:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1367,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1364,"src":"5421:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1368,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"5443:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5421:34:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1375,"nodeType":"IfStatement","src":"5417:102:6","trueBody":{"id":1374,"nodeType":"Block","src":"5457:62:6","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1371,"name":"AccessControlBadConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1501,"src":"5478:28:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5478:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1373,"nodeType":"RevertStatement","src":"5471:37:6"}]}},{"expression":{"arguments":[{"id":1377,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1362,"src":"5541:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1378,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1364,"src":"5547:18:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1376,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"5529:11:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5529:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1380,"nodeType":"ExpressionStatement","src":"5529:37:6"}]},"documentation":{"id":1360,"nodeType":"StructuredDocumentation","src":"4786:537:6","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":1382,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5337:12:6","nodeType":"FunctionDefinition","parameters":{"id":1365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1362,"mutability":"mutable","name":"role","nameLocation":"5358:4:6","nodeType":"VariableDeclaration","scope":1382,"src":"5350:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5350:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1364,"mutability":"mutable","name":"callerConfirmation","nameLocation":"5372:18:6","nodeType":"VariableDeclaration","scope":1382,"src":"5364:26:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1363,"name":"address","nodeType":"ElementaryTypeName","src":"5364:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5349:42:6"},"returnParameters":{"id":1366,"nodeType":"ParameterList","parameters":[],"src":"5407:0:6"},"scope":1488,"src":"5328:245:6","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1409,"nodeType":"Block","src":"5771:174:6","statements":[{"assignments":[1391],"declarations":[{"constant":false,"id":1391,"mutability":"mutable","name":"previousAdminRole","nameLocation":"5789:17:6","nodeType":"VariableDeclaration","scope":1409,"src":"5781:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5781:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1395,"initialValue":{"arguments":[{"id":1393,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1385,"src":"5822:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1392,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"5809:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5809:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5781:46:6"},{"expression":{"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1396,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"5837:6:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1398,"indexExpression":{"id":1397,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1385,"src":"5844:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5837:12:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5850:9:6","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":1213,"src":"5837:22:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1400,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1387,"src":"5862:9:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5837:34:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1402,"nodeType":"ExpressionStatement","src":"5837:34:6"},{"eventCall":{"arguments":[{"id":1404,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1385,"src":"5903:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1405,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"5909:17:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1406,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1387,"src":"5928:9:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1403,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1510,"src":"5886:16:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5886:52:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1408,"nodeType":"EmitStatement","src":"5881:57:6"}]},"documentation":{"id":1383,"nodeType":"StructuredDocumentation","src":"5579:114:6","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":1410,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"5707:13:6","nodeType":"FunctionDefinition","parameters":{"id":1388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"mutability":"mutable","name":"role","nameLocation":"5729:4:6","nodeType":"VariableDeclaration","scope":1410,"src":"5721:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5721:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1387,"mutability":"mutable","name":"adminRole","nameLocation":"5743:9:6","nodeType":"VariableDeclaration","scope":1410,"src":"5735:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5735:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5720:33:6"},"returnParameters":{"id":1389,"nodeType":"ParameterList","parameters":[],"src":"5771:0:6"},"scope":1488,"src":"5698:247:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1448,"nodeType":"Block","src":"6262:233:6","statements":[{"condition":{"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6276:23:6","subExpression":{"arguments":[{"id":1421,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"6285:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1422,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"6291:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1420,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"6277:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6277:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1446,"nodeType":"Block","src":"6452:37:6","statements":[{"expression":{"hexValue":"66616c7365","id":1444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6473:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1419,"id":1445,"nodeType":"Return","src":"6466:12:6"}]},"id":1447,"nodeType":"IfStatement","src":"6272:217:6","trueBody":{"id":1443,"nodeType":"Block","src":"6301:145:6","statements":[{"expression":{"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":1425,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"6315:6:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1427,"indexExpression":{"id":1426,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"6322:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6315:12:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6328:7:6","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":1211,"src":"6315:20:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1430,"indexExpression":{"id":1429,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"6336:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6315:29:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6347:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6315:36:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1433,"nodeType":"ExpressionStatement","src":"6315:36:6"},{"eventCall":{"arguments":[{"id":1435,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"6382:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1436,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1415,"src":"6388:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1437,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"6397:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6397:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1434,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1519,"src":"6370:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":1439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6370:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1440,"nodeType":"EmitStatement","src":"6365:45:6"},{"expression":{"hexValue":"74727565","id":1441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6431:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1419,"id":1442,"nodeType":"Return","src":"6424:11:6"}]}}]},"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"5951:223:6","text":" @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":1449,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"6188:10:6","nodeType":"FunctionDefinition","parameters":{"id":1416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1413,"mutability":"mutable","name":"role","nameLocation":"6207:4:6","nodeType":"VariableDeclaration","scope":1449,"src":"6199:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6199:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1415,"mutability":"mutable","name":"account","nameLocation":"6221:7:6","nodeType":"VariableDeclaration","scope":1449,"src":"6213:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1414,"name":"address","nodeType":"ElementaryTypeName","src":"6213:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6198:31:6"},"returnParameters":{"id":1419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1449,"src":"6256:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1417,"name":"bool","nodeType":"ElementaryTypeName","src":"6256:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6255:6:6"},"scope":1488,"src":"6179:316:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1486,"nodeType":"Block","src":"6814:233:6","statements":[{"condition":{"arguments":[{"id":1460,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1452,"src":"6836:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1461,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"6842:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1459,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"6828:7:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6828:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1484,"nodeType":"Block","src":"7004:37:6","statements":[{"expression":{"hexValue":"66616c7365","id":1482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7025:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1458,"id":1483,"nodeType":"Return","src":"7018:12:6"}]},"id":1485,"nodeType":"IfStatement","src":"6824:217:6","trueBody":{"id":1481,"nodeType":"Block","src":"6852:146:6","statements":[{"expression":{"id":1470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":1463,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"6866:6:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$1214_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":1465,"indexExpression":{"id":1464,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1452,"src":"6873:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6866:12:6","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$1214_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":1466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6879:7:6","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":1211,"src":"6866:20:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1468,"indexExpression":{"id":1467,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"6887:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6866:29:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6898:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6866:37:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1471,"nodeType":"ExpressionStatement","src":"6866:37:6"},{"eventCall":{"arguments":[{"id":1473,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1452,"src":"6934:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1474,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"6940:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1475,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"6949:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1472,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1528,"src":"6922:11:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1478,"nodeType":"EmitStatement","src":"6917:45:6"},{"expression":{"hexValue":"74727565","id":1479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6983:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1458,"id":1480,"nodeType":"Return","src":"6976:11:6"}]}}]},"documentation":{"id":1450,"nodeType":"StructuredDocumentation","src":"6501:224:6","text":" @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":1487,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"6739:11:6","nodeType":"FunctionDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1452,"mutability":"mutable","name":"role","nameLocation":"6759:4:6","nodeType":"VariableDeclaration","scope":1487,"src":"6751:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6751:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1454,"mutability":"mutable","name":"account","nameLocation":"6773:7:6","nodeType":"VariableDeclaration","scope":1487,"src":"6765:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1453,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6750:31:6"},"returnParameters":{"id":1458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1487,"src":"6808:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1456,"name":"bool","nodeType":"ElementaryTypeName","src":"6808:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6807:6:6"},"scope":1488,"src":"6730:317:6","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1489,"src":"1953:5096:6","usedErrors":[1498,1501],"usedEvents":[1510,1519,1528]}],"src":"108:6942:6"},"id":6},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[1571]},"id":1572,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1490,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:7"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":1491,"nodeType":"StructuredDocumentation","src":"135:90:7","text":" @dev External interface of AccessControl declared to support ERC-165 detection."},"fullyImplemented":false,"id":1571,"linearizedBaseContracts":[1571],"name":"IAccessControl","nameLocation":"236:14:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1492,"nodeType":"StructuredDocumentation","src":"257:56:7","text":" @dev The `account` is missing a role."},"errorSelector":"e2517d3f","id":1498,"name":"AccessControlUnauthorizedAccount","nameLocation":"324:32:7","nodeType":"ErrorDefinition","parameters":{"id":1497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"account","nameLocation":"365:7:7","nodeType":"VariableDeclaration","scope":1498,"src":"357:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1493,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1496,"mutability":"mutable","name":"neededRole","nameLocation":"382:10:7","nodeType":"VariableDeclaration","scope":1498,"src":"374:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"356:37:7"},"src":"318:76:7"},{"documentation":{"id":1499,"nodeType":"StructuredDocumentation","src":"400:148:7","text":" @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."},"errorSelector":"6697b232","id":1501,"name":"AccessControlBadConfirmation","nameLocation":"559:28:7","nodeType":"ErrorDefinition","parameters":{"id":1500,"nodeType":"ParameterList","parameters":[],"src":"587:2:7"},"src":"553:37:7"},{"anonymous":false,"documentation":{"id":1502,"nodeType":"StructuredDocumentation","src":"596:254:7","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this."},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":1510,"name":"RoleAdminChanged","nameLocation":"861:16:7","nodeType":"EventDefinition","parameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"894:4:7","nodeType":"VariableDeclaration","scope":1510,"src":"878:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1506,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"916:17:7","nodeType":"VariableDeclaration","scope":1510,"src":"900:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"900:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1508,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"951:12:7","nodeType":"VariableDeclaration","scope":1510,"src":"935:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"935:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"877:87:7"},"src":"855:110:7"},{"anonymous":false,"documentation":{"id":1511,"nodeType":"StructuredDocumentation","src":"971:295:7","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}."},"eventSelector":"2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","id":1519,"name":"RoleGranted","nameLocation":"1277:11:7","nodeType":"EventDefinition","parameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1513,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1305:4:7","nodeType":"VariableDeclaration","scope":1519,"src":"1289:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1515,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1327:7:7","nodeType":"VariableDeclaration","scope":1519,"src":"1311:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1514,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1517,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1352:6:7","nodeType":"VariableDeclaration","scope":1519,"src":"1336:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:71:7"},"src":"1271:89:7"},{"anonymous":false,"documentation":{"id":1520,"nodeType":"StructuredDocumentation","src":"1366:275:7","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n   - if using `revokeRole`, it is the admin role bearer\n   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"eventSelector":"f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b","id":1528,"name":"RoleRevoked","nameLocation":"1652:11:7","nodeType":"EventDefinition","parameters":{"id":1527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1522,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1680:4:7","nodeType":"VariableDeclaration","scope":1528,"src":"1664:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1664:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1524,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1702:7:7","nodeType":"VariableDeclaration","scope":1528,"src":"1686:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1523,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1526,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1727:6:7","nodeType":"VariableDeclaration","scope":1528,"src":"1711:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1525,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:71:7"},"src":"1646:89:7"},{"documentation":{"id":1529,"nodeType":"StructuredDocumentation","src":"1741:76:7","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":1538,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1831:7:7","nodeType":"FunctionDefinition","parameters":{"id":1534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1531,"mutability":"mutable","name":"role","nameLocation":"1847:4:7","nodeType":"VariableDeclaration","scope":1538,"src":"1839:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1839:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1533,"mutability":"mutable","name":"account","nameLocation":"1861:7:7","nodeType":"VariableDeclaration","scope":1538,"src":"1853:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1532,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1838:31:7"},"returnParameters":{"id":1537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1538,"src":"1893:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1535,"name":"bool","nodeType":"ElementaryTypeName","src":"1893:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1892:6:7"},"scope":1571,"src":"1822:77:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1539,"nodeType":"StructuredDocumentation","src":"1905:184:7","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":1546,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"2103:12:7","nodeType":"FunctionDefinition","parameters":{"id":1542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1541,"mutability":"mutable","name":"role","nameLocation":"2124:4:7","nodeType":"VariableDeclaration","scope":1546,"src":"2116:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2116:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2115:14:7"},"returnParameters":{"id":1545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1546,"src":"2153:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2152:9:7"},"scope":1571,"src":"2094:68:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1547,"nodeType":"StructuredDocumentation","src":"2168:239:7","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":1554,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2421:9:7","nodeType":"FunctionDefinition","parameters":{"id":1552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1549,"mutability":"mutable","name":"role","nameLocation":"2439:4:7","nodeType":"VariableDeclaration","scope":1554,"src":"2431:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2431:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1551,"mutability":"mutable","name":"account","nameLocation":"2453:7:7","nodeType":"VariableDeclaration","scope":1554,"src":"2445:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1550,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2430:31:7"},"returnParameters":{"id":1553,"nodeType":"ParameterList","parameters":[],"src":"2470:0:7"},"scope":1571,"src":"2412:59:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1555,"nodeType":"StructuredDocumentation","src":"2477:223:7","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":1562,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2714:10:7","nodeType":"FunctionDefinition","parameters":{"id":1560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1557,"mutability":"mutable","name":"role","nameLocation":"2733:4:7","nodeType":"VariableDeclaration","scope":1562,"src":"2725:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2725:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1559,"mutability":"mutable","name":"account","nameLocation":"2747:7:7","nodeType":"VariableDeclaration","scope":1562,"src":"2739:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1558,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2724:31:7"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[],"src":"2764:0:7"},"scope":1571,"src":"2705:60:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1563,"nodeType":"StructuredDocumentation","src":"2771:491:7","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`."},"functionSelector":"36568abe","id":1570,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"3276:12:7","nodeType":"FunctionDefinition","parameters":{"id":1568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1565,"mutability":"mutable","name":"role","nameLocation":"3297:4:7","nodeType":"VariableDeclaration","scope":1570,"src":"3289:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1567,"mutability":"mutable","name":"callerConfirmation","nameLocation":"3311:18:7","nodeType":"VariableDeclaration","scope":1570,"src":"3303:26:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1566,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3288:42:7"},"returnParameters":{"id":1569,"nodeType":"ParameterList","parameters":[],"src":"3339:0:7"},"scope":1571,"src":"3267:73:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1572,"src":"226:3116:7","usedErrors":[1498,1501],"usedEvents":[1510,1519,1528]}],"src":"109:3234:7"},"id":7},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[3417],"Ownable":[1719]},"id":1720,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1573,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:8"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":1575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1720,"sourceUnit":3418,"src":"128:45:8","symbolAliases":[{"foreign":{"id":1574,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"136:7:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1577,"name":"Context","nameLocations":["692:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":3417,"src":"692:7:8"},"id":1578,"nodeType":"InheritanceSpecifier","src":"692:7:8"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":1576,"nodeType":"StructuredDocumentation","src":"175:487:8","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":1719,"linearizedBaseContracts":[1719,3417],"name":"Ownable","nameLocation":"681:7:8","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1580,"mutability":"mutable","name":"_owner","nameLocation":"722:6:8","nodeType":"VariableDeclaration","scope":1719,"src":"706:22:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1579,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":1581,"nodeType":"StructuredDocumentation","src":"735:85:8","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":1585,"name":"OwnableUnauthorizedAccount","nameLocation":"831:26:8","nodeType":"ErrorDefinition","parameters":{"id":1584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1583,"mutability":"mutable","name":"account","nameLocation":"866:7:8","nodeType":"VariableDeclaration","scope":1585,"src":"858:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1582,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:8"},"src":"825:50:8"},{"documentation":{"id":1586,"nodeType":"StructuredDocumentation","src":"881:82:8","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":1590,"name":"OwnableInvalidOwner","nameLocation":"974:19:8","nodeType":"ErrorDefinition","parameters":{"id":1589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1588,"mutability":"mutable","name":"owner","nameLocation":"1002:5:8","nodeType":"VariableDeclaration","scope":1590,"src":"994:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1587,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:8"},"src":"968:41:8"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":1596,"name":"OwnershipTransferred","nameLocation":"1021:20:8","nodeType":"EventDefinition","parameters":{"id":1595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1592,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:8","nodeType":"VariableDeclaration","scope":1596,"src":"1042:29:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1591,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1594,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:8","nodeType":"VariableDeclaration","scope":1596,"src":"1073:24:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1593,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:8"},"src":"1015:84:8"},{"body":{"id":1621,"nodeType":"Block","src":"1259:153:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1602,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"1273:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297: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":1604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1603,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:8","typeDescriptions":{}}},"id":1606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1616,"nodeType":"IfStatement","src":"1269:95:8","trueBody":{"id":1615,"nodeType":"Block","src":"1301:63:8","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350: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":1610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1609,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:8","typeDescriptions":{}}},"id":1612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1608,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"1322:19:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1614,"nodeType":"RevertStatement","src":"1315:38:8"}]}},{"expression":{"arguments":[{"id":1618,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1599,"src":"1392:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1617,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1373:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1620,"nodeType":"ExpressionStatement","src":"1373:32:8"}]},"documentation":{"id":1597,"nodeType":"StructuredDocumentation","src":"1105:115:8","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"id":1622,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:8","nodeType":"VariableDeclaration","scope":1622,"src":"1237:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1598,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:8"},"returnParameters":{"id":1601,"nodeType":"ParameterList","parameters":[],"src":"1259:0:8"},"scope":1719,"src":"1225:187:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1629,"nodeType":"Block","src":"1521:41:8","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1625,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"1531:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1627,"nodeType":"ExpressionStatement","src":"1531:13:8"},{"id":1628,"nodeType":"PlaceholderStatement","src":"1554:1:8"}]},"documentation":{"id":1623,"nodeType":"StructuredDocumentation","src":"1418:77:8","text":" @dev Throws if called by any account other than the owner."},"id":1630,"name":"onlyOwner","nameLocation":"1509:9:8","nodeType":"ModifierDefinition","parameters":{"id":1624,"nodeType":"ParameterList","parameters":[],"src":"1518:2:8"},"src":"1500:62:8","virtual":false,"visibility":"internal"},{"body":{"id":1638,"nodeType":"Block","src":"1693:30:8","statements":[{"expression":{"id":1636,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"1710:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1635,"id":1637,"nodeType":"Return","src":"1703:13:8"}]},"documentation":{"id":1631,"nodeType":"StructuredDocumentation","src":"1568:65:8","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":1639,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:8","nodeType":"FunctionDefinition","parameters":{"id":1632,"nodeType":"ParameterList","parameters":[],"src":"1652:2:8"},"returnParameters":{"id":1635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1639,"src":"1684:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1633,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:8"},"scope":1719,"src":"1638:85:8","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1655,"nodeType":"Block","src":"1841:117:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1643,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1639,"src":"1855:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1645,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"1866:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1654,"nodeType":"IfStatement","src":"1851:101:8","trueBody":{"id":1653,"nodeType":"Block","src":"1880:72:8","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1649,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"1928:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1648,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"1901:26:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1652,"nodeType":"RevertStatement","src":"1894:47:8"}]}}]},"documentation":{"id":1640,"nodeType":"StructuredDocumentation","src":"1729:62:8","text":" @dev Throws if the sender is not the owner."},"id":1656,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:8","nodeType":"FunctionDefinition","parameters":{"id":1641,"nodeType":"ParameterList","parameters":[],"src":"1816:2:8"},"returnParameters":{"id":1642,"nodeType":"ParameterList","parameters":[],"src":"1841:0:8"},"scope":1719,"src":"1796:162:8","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1669,"nodeType":"Block","src":"2347:47:8","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384: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":1664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1663,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:8","typeDescriptions":{}}},"id":1666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1662,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"2357:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1668,"nodeType":"ExpressionStatement","src":"2357:30:8"}]},"documentation":{"id":1657,"nodeType":"StructuredDocumentation","src":"1964:324:8","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":1670,"implemented":true,"kind":"function","modifiers":[{"id":1660,"kind":"modifierInvocation","modifierName":{"id":1659,"name":"onlyOwner","nameLocations":["2337:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":1630,"src":"2337:9:8"},"nodeType":"ModifierInvocation","src":"2337:9:8"}],"name":"renounceOwnership","nameLocation":"2302:17:8","nodeType":"FunctionDefinition","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[],"src":"2319:2:8"},"returnParameters":{"id":1661,"nodeType":"ParameterList","parameters":[],"src":"2347:0:8"},"scope":1719,"src":"2293:101:8","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1697,"nodeType":"Block","src":"2613:145:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1678,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"2627:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647: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":1680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1679,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:8","typeDescriptions":{}}},"id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1692,"nodeType":"IfStatement","src":"2623:91:8","trueBody":{"id":1691,"nodeType":"Block","src":"2651:63:8","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700: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":1686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1685,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:8","typeDescriptions":{}}},"id":1688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1684,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"2672:19:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1690,"nodeType":"RevertStatement","src":"2665:38:8"}]}},{"expression":{"arguments":[{"id":1694,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"2742:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1693,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"2723:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1696,"nodeType":"ExpressionStatement","src":"2723:28:8"}]},"documentation":{"id":1671,"nodeType":"StructuredDocumentation","src":"2400:138:8","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":1698,"implemented":true,"kind":"function","modifiers":[{"id":1676,"kind":"modifierInvocation","modifierName":{"id":1675,"name":"onlyOwner","nameLocations":["2603:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":1630,"src":"2603:9:8"},"nodeType":"ModifierInvocation","src":"2603:9:8"}],"name":"transferOwnership","nameLocation":"2552:17:8","nodeType":"FunctionDefinition","parameters":{"id":1674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1673,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:8","nodeType":"VariableDeclaration","scope":1698,"src":"2570:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1672,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:8"},"returnParameters":{"id":1677,"nodeType":"ParameterList","parameters":[],"src":"2613:0:8"},"scope":1719,"src":"2543:215:8","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1717,"nodeType":"Block","src":"2975:124:8","statements":[{"assignments":[1705],"declarations":[{"constant":false,"id":1705,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:8","nodeType":"VariableDeclaration","scope":1717,"src":"2985:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1704,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1707,"initialValue":{"id":1706,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"3004:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:8"},{"expression":{"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1708,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"3020:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1709,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"3029:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1711,"nodeType":"ExpressionStatement","src":"3020:17:8"},{"eventCall":{"arguments":[{"id":1713,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1705,"src":"3073:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1714,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"3083:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1712,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"3052:20:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1716,"nodeType":"EmitStatement","src":"3047:45:8"}]},"documentation":{"id":1699,"nodeType":"StructuredDocumentation","src":"2764:143:8","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":1718,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:8","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:8","nodeType":"VariableDeclaration","scope":1718,"src":"2940:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1700,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:8"},"returnParameters":{"id":1703,"nodeType":"ParameterList","parameters":[],"src":"2975:0:8"},"scope":1719,"src":"2912:187:8","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":1720,"src":"663:2438:8","usedErrors":[1585,1590],"usedEvents":[1596]}],"src":"102:3000:8"},"id":8},"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","exportedSymbols":{"AccessControl":[1488],"AccessControlDefaultAdminRules":[2436],"IAccessControl":[1571],"IAccessControlDefaultAdminRules":[2535],"IERC5313":[2566],"Math":[5374],"SafeCast":[7139]},"id":2437,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1721,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"136:24:9"},{"absolutePath":"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol","file":"./IAccessControlDefaultAdminRules.sol","id":1723,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2437,"sourceUnit":2536,"src":"162:86:9","symbolAliases":[{"foreign":{"id":1722,"name":"IAccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2535,"src":"170:31:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"../AccessControl.sol","id":1726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2437,"sourceUnit":1489,"src":"249:67:9","symbolAliases":[{"foreign":{"id":1724,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"257:13:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":1725,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"272:14:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"../../utils/math/SafeCast.sol","id":1728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2437,"sourceUnit":7140,"src":"317:55:9","symbolAliases":[{"foreign":{"id":1727,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"325:8:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"../../utils/math/Math.sol","id":1730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2437,"sourceUnit":5375,"src":"373:47:9","symbolAliases":[{"foreign":{"id":1729,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5374,"src":"381:4:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5313.sol","file":"../../interfaces/IERC5313.sol","id":1732,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2437,"sourceUnit":2567,"src":"421:55:9","symbolAliases":[{"foreign":{"id":1731,"name":"IERC5313","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2566,"src":"429:8:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1734,"name":"IAccessControlDefaultAdminRules","nameLocations":["1749:31:9"],"nodeType":"IdentifierPath","referencedDeclaration":2535,"src":"1749:31:9"},"id":1735,"nodeType":"InheritanceSpecifier","src":"1749:31:9"},{"baseName":{"id":1736,"name":"IERC5313","nameLocations":["1782:8:9"],"nodeType":"IdentifierPath","referencedDeclaration":2566,"src":"1782:8:9"},"id":1737,"nodeType":"InheritanceSpecifier","src":"1782:8:9"},{"baseName":{"id":1738,"name":"AccessControl","nameLocations":["1792:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":1488,"src":"1792:13:9"},"id":1739,"nodeType":"InheritanceSpecifier","src":"1792:13:9"}],"canonicalName":"AccessControlDefaultAdminRules","contractDependencies":[],"contractKind":"contract","documentation":{"id":1733,"nodeType":"StructuredDocumentation","src":"478:1218:9","text":" @dev Extension of {AccessControl} that allows specifying special rules to manage\n the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions\n over other roles that may potentially have privileged rights in the system.\n If a specific role doesn't have an admin role assigned, the holder of the\n `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it.\n This contract implements the following risk mitigations on top of {AccessControl}:\n * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced.\n * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account.\n * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted.\n * The delay can be changed by scheduling, see {changeDefaultAdminDelay}.\n * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`.\n Example usage:\n ```solidity\n contract MyToken is AccessControlDefaultAdminRules {\n   constructor() AccessControlDefaultAdminRules(\n     3 days,\n     msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder\n    ) {}\n }\n ```"},"fullyImplemented":true,"id":2436,"linearizedBaseContracts":[2436,1488,3756,3768,2566,2535,1571,3417],"name":"AccessControlDefaultAdminRules","nameLocation":"1715:30:9","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1741,"mutability":"mutable","name":"_pendingDefaultAdmin","nameLocation":"1887:20:9","nodeType":"VariableDeclaration","scope":2436,"src":"1871:36:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1740,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1743,"mutability":"mutable","name":"_pendingDefaultAdminSchedule","nameLocation":"1928:28:9","nodeType":"VariableDeclaration","scope":2436,"src":"1913:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1742,"name":"uint48","nodeType":"ElementaryTypeName","src":"1913:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"private"},{"constant":false,"id":1745,"mutability":"mutable","name":"_currentDelay","nameLocation":"1992:13:9","nodeType":"VariableDeclaration","scope":2436,"src":"1977:28:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1744,"name":"uint48","nodeType":"ElementaryTypeName","src":"1977:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"private"},{"constant":false,"id":1747,"mutability":"mutable","name":"_currentDefaultAdmin","nameLocation":"2027:20:9","nodeType":"VariableDeclaration","scope":2436,"src":"2011:36:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1746,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1749,"mutability":"mutable","name":"_pendingDelay","nameLocation":"2128:13:9","nodeType":"VariableDeclaration","scope":2436,"src":"2113:28:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1748,"name":"uint48","nodeType":"ElementaryTypeName","src":"2113:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"private"},{"constant":false,"id":1751,"mutability":"mutable","name":"_pendingDelaySchedule","nameLocation":"2162:21:9","nodeType":"VariableDeclaration","scope":2436,"src":"2147:36:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1750,"name":"uint48","nodeType":"ElementaryTypeName","src":"2147:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"private"},{"body":{"id":1783,"nodeType":"Block","src":"2370:230:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1759,"name":"initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"2384:19:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:9","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":1761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2407:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1760,"name":"address","nodeType":"ElementaryTypeName","src":"2407:7:9","typeDescriptions":{}}},"id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2384:33:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1773,"nodeType":"IfStatement","src":"2380:115:9","trueBody":{"id":1772,"nodeType":"Block","src":"2419:76:9","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2481:1:9","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":1767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2473:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:9","typeDescriptions":{}}},"id":1769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1765,"name":"AccessControlInvalidDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2448,"src":"2440:32:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2440:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1771,"nodeType":"RevertStatement","src":"2433:51:9"}]}},{"expression":{"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1774,"name":"_currentDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"2504:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1775,"name":"initialDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"2520:12:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"2504:28:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":1777,"nodeType":"ExpressionStatement","src":"2504:28:9"},{"expression":{"arguments":[{"id":1779,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"2553:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1780,"name":"initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"2573:19:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1778,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[1970],"referencedDeclaration":1970,"src":"2542:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2542:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1782,"nodeType":"ExpressionStatement","src":"2542:51:9"}]},"documentation":{"id":1752,"nodeType":"StructuredDocumentation","src":"2204:99:9","text":" @dev Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address."},"id":1784,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1754,"mutability":"mutable","name":"initialDelay","nameLocation":"2327:12:9","nodeType":"VariableDeclaration","scope":1784,"src":"2320:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1753,"name":"uint48","nodeType":"ElementaryTypeName","src":"2320:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":1756,"mutability":"mutable","name":"initialDefaultAdmin","nameLocation":"2349:19:9","nodeType":"VariableDeclaration","scope":1784,"src":"2341:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1755,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2319:50:9"},"returnParameters":{"id":1758,"nodeType":"ParameterList","parameters":[],"src":"2370:0:9"},"scope":2436,"src":"2308:292:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1255],"body":{"id":1805,"nodeType":"Block","src":"2758:128:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1793,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"2775:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1795,"name":"IAccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2535,"src":"2795:31:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlDefaultAdminRules_$2535_$","typeString":"type(contract IAccessControlDefaultAdminRules)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlDefaultAdminRules_$2535_$","typeString":"type(contract IAccessControlDefaultAdminRules)"}],"id":1794,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2790:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2790:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlDefaultAdminRules_$2535","typeString":"type(contract IAccessControlDefaultAdminRules)"}},"id":1797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2828:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"2790:49:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2775:64:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1801,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"2867:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1799,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2843:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2849:17:9","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":1255,"src":"2843:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2843:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2775:104:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1792,"id":1804,"nodeType":"Return","src":"2768:111:9"}]},"documentation":{"id":1785,"nodeType":"StructuredDocumentation","src":"2606:56:9","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1806,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2676:17:9","nodeType":"FunctionDefinition","overrides":{"id":1789,"nodeType":"OverrideSpecifier","overrides":[],"src":"2734:8:9"},"parameters":{"id":1788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1787,"mutability":"mutable","name":"interfaceId","nameLocation":"2701:11:9","nodeType":"VariableDeclaration","scope":1806,"src":"2694:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1786,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2694:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2693:20:9"},"returnParameters":{"id":1792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1806,"src":"2752:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1790,"name":"bool","nodeType":"ElementaryTypeName","src":"2752:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2751:6:9"},"scope":2436,"src":"2667:219:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2565],"body":{"id":1815,"nodeType":"Block","src":"2997:38:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1812,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"3014:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1811,"id":1814,"nodeType":"Return","src":"3007:21:9"}]},"documentation":{"id":1807,"nodeType":"StructuredDocumentation","src":"2892:45:9","text":" @dev See {IERC5313-owner}."},"functionSelector":"8da5cb5b","id":1816,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"2951:5:9","nodeType":"FunctionDefinition","parameters":{"id":1808,"nodeType":"ParameterList","parameters":[],"src":"2956:2:9"},"returnParameters":{"id":1811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1810,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1816,"src":"2988:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1809,"name":"address","nodeType":"ElementaryTypeName","src":"2988:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2987:9:9"},"scope":2436,"src":"2942:93:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1340,1554],"body":{"id":1842,"nodeType":"Block","src":"3303:160:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1827,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"3317:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1828,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"3325:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3317:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1834,"nodeType":"IfStatement","src":"3313:104:9","trueBody":{"id":1833,"nodeType":"Block","src":"3345:72:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1830,"name":"AccessControlEnforcedDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2451,"src":"3366:38:9","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":"3366:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1832,"nodeType":"RevertStatement","src":"3359:47:9"}]}},{"expression":{"arguments":[{"id":1838,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"3442:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1839,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"3448:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1835,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3426:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:9:9","memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":1340,"src":"3426:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1841,"nodeType":"ExpressionStatement","src":"3426:30:9"}]},"documentation":{"id":1817,"nodeType":"StructuredDocumentation","src":"3105:88:9","text":" @dev See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"functionSelector":"2f2ff15d","id":1843,"implemented":true,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"3207:9:9","nodeType":"FunctionDefinition","overrides":{"id":1825,"nodeType":"OverrideSpecifier","overrides":[{"id":1823,"name":"AccessControl","nameLocations":["3272:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":1488,"src":"3272:13:9"},{"id":1824,"name":"IAccessControl","nameLocations":["3287:14:9"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"3287:14:9"}],"src":"3263:39:9"},"parameters":{"id":1822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1819,"mutability":"mutable","name":"role","nameLocation":"3225:4:9","nodeType":"VariableDeclaration","scope":1843,"src":"3217:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3217:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1821,"mutability":"mutable","name":"account","nameLocation":"3239:7:9","nodeType":"VariableDeclaration","scope":1843,"src":"3231:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1820,"name":"address","nodeType":"ElementaryTypeName","src":"3231:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3216:31:9"},"returnParameters":{"id":1826,"nodeType":"ParameterList","parameters":[],"src":"3303:0:9"},"scope":2436,"src":"3198:265:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1359,1562],"body":{"id":1869,"nodeType":"Block","src":"3669:161:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1854,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1846,"src":"3683:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1855,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"3691:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3683:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1861,"nodeType":"IfStatement","src":"3679:104:9","trueBody":{"id":1860,"nodeType":"Block","src":"3711:72:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1857,"name":"AccessControlEnforcedDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2451,"src":"3732:38:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3732:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1859,"nodeType":"RevertStatement","src":"3725:47:9"}]}},{"expression":{"arguments":[{"id":1865,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1846,"src":"3809:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1866,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"3815:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1862,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3792:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3798:10:9","memberName":"revokeRole","nodeType":"MemberAccess","referencedDeclaration":1359,"src":"3792:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3792:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1868,"nodeType":"ExpressionStatement","src":"3792:31:9"}]},"documentation":{"id":1844,"nodeType":"StructuredDocumentation","src":"3469:89:9","text":" @dev See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`."},"functionSelector":"d547741f","id":1870,"implemented":true,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"3572:10:9","nodeType":"FunctionDefinition","overrides":{"id":1852,"nodeType":"OverrideSpecifier","overrides":[{"id":1850,"name":"AccessControl","nameLocations":["3638:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":1488,"src":"3638:13:9"},{"id":1851,"name":"IAccessControl","nameLocations":["3653:14:9"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"3653:14:9"}],"src":"3629:39:9"},"parameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1846,"mutability":"mutable","name":"role","nameLocation":"3591:4:9","nodeType":"VariableDeclaration","scope":1870,"src":"3583:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3583:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1848,"mutability":"mutable","name":"account","nameLocation":"3605:7:9","nodeType":"VariableDeclaration","scope":1870,"src":"3597:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1847,"name":"address","nodeType":"ElementaryTypeName","src":"3597:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3582:31:9"},"returnParameters":{"id":1853,"nodeType":"ParameterList","parameters":[],"src":"3669:0:9"},"scope":2436,"src":"3563:267:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1382,1570],"body":{"id":1930,"nodeType":"Block","src":"4623:458:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1881,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"4637:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1882,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"4645:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4637:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1884,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"4667:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1885,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"4678:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4678:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4667:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4637:55:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1922,"nodeType":"IfStatement","src":"4633:399:9","trueBody":{"id":1921,"nodeType":"Block","src":"4694:338:9","statements":[{"assignments":[1890,1892],"declarations":[{"constant":false,"id":1890,"mutability":"mutable","name":"newDefaultAdmin","nameLocation":"4717:15:9","nodeType":"VariableDeclaration","scope":1921,"src":"4709:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1889,"name":"address","nodeType":"ElementaryTypeName","src":"4709:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1892,"mutability":"mutable","name":"schedule","nameLocation":"4741:8:9","nodeType":"VariableDeclaration","scope":1921,"src":"4734:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":1891,"name":"uint48","nodeType":"ElementaryTypeName","src":"4734:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":1895,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1893,"name":"pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2048,"src":"4753:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$_t_uint48_$","typeString":"function () view returns (address,uint48)"}},"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$","typeString":"tuple(address,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"4708:66:9"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1896,"name":"newDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"4792:15:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4819:1:9","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":1898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4811:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1897,"name":"address","nodeType":"ElementaryTypeName","src":"4811:7:9","typeDescriptions":{}}},"id":1900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4792:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4825:25:9","subExpression":{"arguments":[{"id":1903,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"4841:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":1902,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"4826:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4826:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4792:58:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4854:29:9","subExpression":{"arguments":[{"id":1908,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"4874:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":1907,"name":"_hasSchedulePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"4855:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) view returns (bool)"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4855:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4792:91:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1917,"nodeType":"IfStatement","src":"4788:185:9","trueBody":{"id":1916,"nodeType":"Block","src":"4885:88:9","statements":[{"errorCall":{"arguments":[{"id":1913,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"4949:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":1912,"name":"AccessControlEnforcedDefaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2456,"src":"4910:38:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint48_$returns$_t_error_$","typeString":"function (uint48) pure returns (error)"}},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1915,"nodeType":"RevertStatement","src":"4903:55:9"}]}},{"expression":{"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4986:35:9","subExpression":{"id":1918,"name":"_pendingDefaultAdminSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"4993:28:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1920,"nodeType":"ExpressionStatement","src":"4986:35:9"}]}},{"expression":{"arguments":[{"id":1926,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"5060:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1927,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"5066:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1923,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5041:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5047:12:9","memberName":"renounceRole","nodeType":"MemberAccess","referencedDeclaration":1382,"src":"5041:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5041:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1929,"nodeType":"ExpressionStatement","src":"5041:33:9"}]},"documentation":{"id":1871,"nodeType":"StructuredDocumentation","src":"3836:674:9","text":" @dev See {AccessControl-renounceRole}.\n For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling\n {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule\n has also passed when calling this function.\n After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions.\n NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin},\n thereby disabling any functionality that is only available for it, and the possibility of reassigning a\n non-administrated role."},"functionSelector":"36568abe","id":1931,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"4524:12:9","nodeType":"FunctionDefinition","overrides":{"id":1879,"nodeType":"OverrideSpecifier","overrides":[{"id":1877,"name":"AccessControl","nameLocations":["4592:13:9"],"nodeType":"IdentifierPath","referencedDeclaration":1488,"src":"4592:13:9"},{"id":1878,"name":"IAccessControl","nameLocations":["4607:14:9"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"4607:14:9"}],"src":"4583:39:9"},"parameters":{"id":1876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1873,"mutability":"mutable","name":"role","nameLocation":"4545:4:9","nodeType":"VariableDeclaration","scope":1931,"src":"4537:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1875,"mutability":"mutable","name":"account","nameLocation":"4559:7:9","nodeType":"VariableDeclaration","scope":1931,"src":"4551:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1874,"name":"address","nodeType":"ElementaryTypeName","src":"4551:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4536:31:9"},"returnParameters":{"id":1880,"nodeType":"ParameterList","parameters":[],"src":"4623:0:9"},"scope":2436,"src":"4515:566:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1449],"body":{"id":1969,"nodeType":"Block","src":"5601:278:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1942,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1934,"src":"5615:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1943,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"5623:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5615:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1962,"nodeType":"IfStatement","src":"5611:214:9","trueBody":{"id":1961,"nodeType":"Block","src":"5643:182:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1945,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"5661:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5687:1:9","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":1948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5679:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1947,"name":"address","nodeType":"ElementaryTypeName","src":"5679:7:9","typeDescriptions":{}}},"id":1950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5679:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5661:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1956,"nodeType":"IfStatement","src":"5657:114:9","trueBody":{"id":1955,"nodeType":"Block","src":"5691:80:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1952,"name":"AccessControlEnforcedDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2451,"src":"5716:38:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5716:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1954,"nodeType":"RevertStatement","src":"5709:47:9"}]}},{"expression":{"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1957,"name":"_currentDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"5784:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1958,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"5807:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5784:30:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1960,"nodeType":"ExpressionStatement","src":"5784:30:9"}]}},{"expression":{"arguments":[{"id":1965,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1934,"src":"5858:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1966,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1936,"src":"5864:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1963,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5841:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5847:10:9","memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":1449,"src":"5841:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5841:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1941,"id":1968,"nodeType":"Return","src":"5834:38:9"}]},"documentation":{"id":1932,"nodeType":"StructuredDocumentation","src":"5087:417:9","text":" @dev See {AccessControl-_grantRole}.\n For `DEFAULT_ADMIN_ROLE`, it only allows granting if there isn't already a {defaultAdmin} or if the\n role has been previously renounced.\n NOTE: Exposing this function through another mechanism may make the `DEFAULT_ADMIN_ROLE`\n assignable again. Make sure to guarantee this is the expected behavior in your implementation."},"id":1970,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"5518:10:9","nodeType":"FunctionDefinition","overrides":{"id":1938,"nodeType":"OverrideSpecifier","overrides":[],"src":"5577:8:9"},"parameters":{"id":1937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1934,"mutability":"mutable","name":"role","nameLocation":"5537:4:9","nodeType":"VariableDeclaration","scope":1970,"src":"5529:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5529:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1936,"mutability":"mutable","name":"account","nameLocation":"5551:7:9","nodeType":"VariableDeclaration","scope":1970,"src":"5543:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1935,"name":"address","nodeType":"ElementaryTypeName","src":"5543:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5528:31:9"},"returnParameters":{"id":1941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1970,"src":"5595:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1939,"name":"bool","nodeType":"ElementaryTypeName","src":"5595:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5594:6:9"},"scope":2436,"src":"5509:370:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1487],"body":{"id":2000,"nodeType":"Block","src":"6039:178:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1981,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"6053:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1982,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"6061:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6053:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1984,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"6083:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1985,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"6094:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6083:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6053:55:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1993,"nodeType":"IfStatement","src":"6049:113:9","trueBody":{"id":1992,"nodeType":"Block","src":"6110:52:9","statements":[{"expression":{"id":1990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6124:27:9","subExpression":{"id":1989,"name":"_currentDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"6131:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1991,"nodeType":"ExpressionStatement","src":"6124:27:9"}]}},{"expression":{"arguments":[{"id":1996,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"6196:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1997,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"6202:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1994,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6178:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6184:11:9","memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":1487,"src":"6178:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1980,"id":1999,"nodeType":"Return","src":"6171:39:9"}]},"documentation":{"id":1971,"nodeType":"StructuredDocumentation","src":"5885:56:9","text":" @dev See {AccessControl-_revokeRole}."},"id":2001,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"5955:11:9","nodeType":"FunctionDefinition","overrides":{"id":1977,"nodeType":"OverrideSpecifier","overrides":[],"src":"6015:8:9"},"parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1973,"mutability":"mutable","name":"role","nameLocation":"5975:4:9","nodeType":"VariableDeclaration","scope":2001,"src":"5967:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5967:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1975,"mutability":"mutable","name":"account","nameLocation":"5989:7:9","nodeType":"VariableDeclaration","scope":2001,"src":"5981:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1974,"name":"address","nodeType":"ElementaryTypeName","src":"5981:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5966:31:9"},"returnParameters":{"id":1980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2001,"src":"6033:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1978,"name":"bool","nodeType":"ElementaryTypeName","src":"6033:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6032:6:9"},"scope":2436,"src":"5946:271:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1410],"body":{"id":2025,"nodeType":"Block","src":"6402:166:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2010,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2004,"src":"6416:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2011,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"6424:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6416:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2017,"nodeType":"IfStatement","src":"6412:104:9","trueBody":{"id":2016,"nodeType":"Block","src":"6444:72:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2013,"name":"AccessControlEnforcedDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2451,"src":"6465:38:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6465:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2015,"nodeType":"RevertStatement","src":"6458:47:9"}]}},{"expression":{"arguments":[{"id":2021,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2004,"src":"6545:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2022,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"6551:9:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2018,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6525:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlDefaultAdminRules_$2436_$","typeString":"type(contract super AccessControlDefaultAdminRules)"}},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6531:13:9","memberName":"_setRoleAdmin","nodeType":"MemberAccess","referencedDeclaration":1410,"src":"6525:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":2023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6525:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2024,"nodeType":"ExpressionStatement","src":"6525:36:9"}]},"documentation":{"id":2002,"nodeType":"StructuredDocumentation","src":"6223:92:9","text":" @dev See {AccessControl-_setRoleAdmin}. Reverts for `DEFAULT_ADMIN_ROLE`."},"id":2026,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"6329:13:9","nodeType":"FunctionDefinition","overrides":{"id":2008,"nodeType":"OverrideSpecifier","overrides":[],"src":"6393:8:9"},"parameters":{"id":2007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2004,"mutability":"mutable","name":"role","nameLocation":"6351:4:9","nodeType":"VariableDeclaration","scope":2026,"src":"6343:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6343:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2006,"mutability":"mutable","name":"adminRole","nameLocation":"6365:9:9","nodeType":"VariableDeclaration","scope":2026,"src":"6357:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6357:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6342:33:9"},"returnParameters":{"id":2009,"nodeType":"ParameterList","parameters":[],"src":"6402:0:9"},"scope":2436,"src":"6320:248:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2482],"body":{"id":2034,"nodeType":"Block","src":"6769:44:9","statements":[{"expression":{"id":2032,"name":"_currentDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"6786:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2031,"id":2033,"nodeType":"Return","src":"6779:27:9"}]},"documentation":{"id":2027,"nodeType":"StructuredDocumentation","src":"6640:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"84ef8ffc","id":2035,"implemented":true,"kind":"function","modifiers":[],"name":"defaultAdmin","nameLocation":"6716:12:9","nodeType":"FunctionDefinition","parameters":{"id":2028,"nodeType":"ParameterList","parameters":[],"src":"6728:2:9"},"returnParameters":{"id":2031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2035,"src":"6760:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2029,"name":"address","nodeType":"ElementaryTypeName","src":"6760:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6759:9:9"},"scope":2436,"src":"6707:106:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2490],"body":{"id":2047,"nodeType":"Block","src":"6981:76:9","statements":[{"expression":{"components":[{"id":2043,"name":"_pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"6999:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2044,"name":"_pendingDefaultAdminSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"7021:28:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":2045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6998:52:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$","typeString":"tuple(address,uint48)"}},"functionReturnParameters":2042,"id":2046,"nodeType":"Return","src":"6991:59:9"}]},"documentation":{"id":2036,"nodeType":"StructuredDocumentation","src":"6819:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"cf6eefb7","id":2048,"implemented":true,"kind":"function","modifiers":[],"name":"pendingDefaultAdmin","nameLocation":"6895:19:9","nodeType":"FunctionDefinition","parameters":{"id":2037,"nodeType":"ParameterList","parameters":[],"src":"6914:2:9"},"returnParameters":{"id":2042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2039,"mutability":"mutable","name":"newAdmin","nameLocation":"6954:8:9","nodeType":"VariableDeclaration","scope":2048,"src":"6946:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2038,"name":"address","nodeType":"ElementaryTypeName","src":"6946:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2041,"mutability":"mutable","name":"schedule","nameLocation":"6971:8:9","nodeType":"VariableDeclaration","scope":2048,"src":"6964:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2040,"name":"uint48","nodeType":"ElementaryTypeName","src":"6964:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6945:35:9"},"scope":2436,"src":"6886:171:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2496],"body":{"id":2070,"nodeType":"Block","src":"7196:163:9","statements":[{"assignments":[2055],"declarations":[{"constant":false,"id":2055,"mutability":"mutable","name":"schedule","nameLocation":"7213:8:9","nodeType":"VariableDeclaration","scope":2070,"src":"7206:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2054,"name":"uint48","nodeType":"ElementaryTypeName","src":"7206:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2057,"initialValue":{"id":2056,"name":"_pendingDelaySchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"7224:21:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"7206:39:9"},{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2059,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2055,"src":"7278:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2058,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"7263:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7263:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":2062,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2055,"src":"7310:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2061,"name":"_hasSchedulePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"7291:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) view returns (bool)"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7291:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7263:56:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2065,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7262:58:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2067,"name":"_currentDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"7339:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7262:90:9","trueExpression":{"id":2066,"name":"_pendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"7323:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":2053,"id":2069,"nodeType":"Return","src":"7255:97:9"}]},"documentation":{"id":2049,"nodeType":"StructuredDocumentation","src":"7063:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"cc8463c8","id":2071,"implemented":true,"kind":"function","modifiers":[],"name":"defaultAdminDelay","nameLocation":"7139:17:9","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[],"src":"7156:2:9"},"returnParameters":{"id":2053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2071,"src":"7188:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2051,"name":"uint48","nodeType":"ElementaryTypeName","src":"7188:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7187:8:9"},"scope":2436,"src":"7130:229:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2504],"body":{"id":2100,"nodeType":"Block","src":"7531:162:9","statements":[{"expression":{"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2079,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"7541:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2080,"name":"_pendingDelaySchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"7552:21:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"7541:32:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2082,"nodeType":"ExpressionStatement","src":"7541:32:9"},{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2084,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"7606:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2083,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"7591:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7591:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7619:29:9","subExpression":{"arguments":[{"id":2087,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"7639:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2086,"name":"_hasSchedulePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"7620:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) view returns (bool)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7620:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7591:57:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7590:59:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"hexValue":"30","id":2095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7681:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2097,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7680:6:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7590:96:9","trueExpression":{"components":[{"id":2092,"name":"_pendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"7653:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":2093,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"7668:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":2094,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7652:25:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"functionReturnParameters":2078,"id":2099,"nodeType":"Return","src":"7583:103:9"}]},"documentation":{"id":2072,"nodeType":"StructuredDocumentation","src":"7365:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"a1eda53c","id":2101,"implemented":true,"kind":"function","modifiers":[],"name":"pendingDefaultAdminDelay","nameLocation":"7441:24:9","nodeType":"FunctionDefinition","parameters":{"id":2073,"nodeType":"ParameterList","parameters":[],"src":"7465:2:9"},"returnParameters":{"id":2078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2075,"mutability":"mutable","name":"newDelay","nameLocation":"7504:8:9","nodeType":"VariableDeclaration","scope":2101,"src":"7497:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2074,"name":"uint48","nodeType":"ElementaryTypeName","src":"7497:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":2077,"mutability":"mutable","name":"schedule","nameLocation":"7521:8:9","nodeType":"VariableDeclaration","scope":2101,"src":"7514:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2076,"name":"uint48","nodeType":"ElementaryTypeName","src":"7514:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7496:34:9"},"scope":2436,"src":"7432:261:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2534],"body":{"id":2109,"nodeType":"Block","src":"7844:30:9","statements":[{"expression":{"hexValue":"35","id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7861:6:9","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_432000_by_1","typeString":"int_const 432000"},"value":"5"},"functionReturnParameters":2106,"id":2108,"nodeType":"Return","src":"7854:13:9"}]},"documentation":{"id":2102,"nodeType":"StructuredDocumentation","src":"7699:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"022d63fb","id":2110,"implemented":true,"kind":"function","modifiers":[],"name":"defaultAdminDelayIncreaseWait","nameLocation":"7775:29:9","nodeType":"FunctionDefinition","parameters":{"id":2103,"nodeType":"ParameterList","parameters":[],"src":"7804:2:9"},"returnParameters":{"id":2106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2110,"src":"7836:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2104,"name":"uint48","nodeType":"ElementaryTypeName","src":"7836:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7835:8:9"},"scope":2436,"src":"7766:108:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2510],"body":{"id":2123,"nodeType":"Block","src":"8165:53:9","statements":[{"expression":{"arguments":[{"id":2120,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"8202:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2119,"name":"_beginDefaultAdminTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2152,"src":"8175:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8175:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2122,"nodeType":"ExpressionStatement","src":"8175:36:9"}]},"documentation":{"id":2111,"nodeType":"StructuredDocumentation","src":"8001:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"634e93da","id":2124,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2116,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"8145:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2117,"kind":"modifierInvocation","modifierName":{"id":2115,"name":"onlyRole","nameLocations":["8136:8:9"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"8136:8:9"},"nodeType":"ModifierInvocation","src":"8136:28:9"}],"name":"beginDefaultAdminTransfer","nameLocation":"8077:25:9","nodeType":"FunctionDefinition","parameters":{"id":2114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"newAdmin","nameLocation":"8111:8:9","nodeType":"VariableDeclaration","scope":2124,"src":"8103:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2112,"name":"address","nodeType":"ElementaryTypeName","src":"8103:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8102:18:9"},"returnParameters":{"id":2118,"nodeType":"ParameterList","parameters":[],"src":"8165:0:9"},"scope":2436,"src":"8068:150:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2151,"nodeType":"Block","src":"8416:217:9","statements":[{"assignments":[2131],"declarations":[{"constant":false,"id":2131,"mutability":"mutable","name":"newSchedule","nameLocation":"8433:11:9","nodeType":"VariableDeclaration","scope":2151,"src":"8426:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2130,"name":"uint48","nodeType":"ElementaryTypeName","src":"8426:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2140,"initialValue":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2134,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8465:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8471:9:9","memberName":"timestamp","nodeType":"MemberAccess","src":"8465:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2132,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"8447:8:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8456:8:9","memberName":"toUint48","nodeType":"MemberAccess","referencedDeclaration":6129,"src":"8447:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint48_$","typeString":"function (uint256) pure returns (uint48)"}},"id":2136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8447:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2137,"name":"defaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"8484:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8484:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"8447:56:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"8426:77:9"},{"expression":{"arguments":[{"id":2142,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"8537:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2143,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"8547:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2141,"name":"_setPendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"8513:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint48_$returns$__$","typeString":"function (address,uint48)"}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8513:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2145,"nodeType":"ExpressionStatement","src":"8513:46:9"},{"eventCall":{"arguments":[{"id":2147,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"8604:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2148,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"8614:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2146,"name":"DefaultAdminTransferScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"8574:29:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint48_$returns$__$","typeString":"function (address,uint48)"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8574:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2150,"nodeType":"EmitStatement","src":"8569:57:9"}]},"documentation":{"id":2125,"nodeType":"StructuredDocumentation","src":"8224:116:9","text":" @dev See {beginDefaultAdminTransfer}.\n Internal function without access restriction."},"id":2152,"implemented":true,"kind":"function","modifiers":[],"name":"_beginDefaultAdminTransfer","nameLocation":"8354:26:9","nodeType":"FunctionDefinition","parameters":{"id":2128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2127,"mutability":"mutable","name":"newAdmin","nameLocation":"8389:8:9","nodeType":"VariableDeclaration","scope":2152,"src":"8381:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2126,"name":"address","nodeType":"ElementaryTypeName","src":"8381:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8380:18:9"},"returnParameters":{"id":2129,"nodeType":"ParameterList","parameters":[],"src":"8416:0:9"},"scope":2436,"src":"8345:288:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2514],"body":{"id":2162,"nodeType":"Block","src":"8788:46:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2159,"name":"_cancelDefaultAdminTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"8798:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8798:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2161,"nodeType":"ExpressionStatement","src":"8798:29:9"}]},"documentation":{"id":2153,"nodeType":"StructuredDocumentation","src":"8639:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"d602b9fd","id":2163,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2156,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"8768:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2157,"kind":"modifierInvocation","modifierName":{"id":2155,"name":"onlyRole","nameLocations":["8759:8:9"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"8759:8:9"},"nodeType":"ModifierInvocation","src":"8759:28:9"}],"name":"cancelDefaultAdminTransfer","nameLocation":"8715:26:9","nodeType":"FunctionDefinition","parameters":{"id":2154,"nodeType":"ParameterList","parameters":[],"src":"8741:2:9"},"returnParameters":{"id":2158,"nodeType":"ParameterList","parameters":[],"src":"8788:0:9"},"scope":2436,"src":"8706:128:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2175,"nodeType":"Block","src":"9018:55:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9060:1:9","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":2169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9052:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2168,"name":"address","nodeType":"ElementaryTypeName","src":"9052:7:9","typeDescriptions":{}}},"id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9052:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":2172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9064:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2167,"name":"_setPendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"9028:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint48_$returns$__$","typeString":"function (address,uint48)"}},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9028:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2174,"nodeType":"ExpressionStatement","src":"9028:38:9"}]},"documentation":{"id":2164,"nodeType":"StructuredDocumentation","src":"8840:117:9","text":" @dev See {cancelDefaultAdminTransfer}.\n Internal function without access restriction."},"id":2176,"implemented":true,"kind":"function","modifiers":[],"name":"_cancelDefaultAdminTransfer","nameLocation":"8971:27:9","nodeType":"FunctionDefinition","parameters":{"id":2165,"nodeType":"ParameterList","parameters":[],"src":"8998:2:9"},"returnParameters":{"id":2166,"nodeType":"ParameterList","parameters":[],"src":"9018:0:9"},"scope":2436,"src":"8962:111:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2518],"body":{"id":2199,"nodeType":"Block","src":"9199:291:9","statements":[{"assignments":[2181,null],"declarations":[{"constant":false,"id":2181,"mutability":"mutable","name":"newDefaultAdmin","nameLocation":"9218:15:9","nodeType":"VariableDeclaration","scope":2199,"src":"9210:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2180,"name":"address","nodeType":"ElementaryTypeName","src":"9210:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":2184,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2182,"name":"pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2048,"src":"9239:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$_t_uint48_$","typeString":"function () view returns (address,uint48)"}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9239:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$","typeString":"tuple(address,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9209:51:9"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2185,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"9274:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9274:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2187,"name":"newDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2181,"src":"9290:15:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9274:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2195,"nodeType":"IfStatement","src":"9270:175:9","trueBody":{"id":2194,"nodeType":"Block","src":"9307:138:9","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2190,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"9421:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9421:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2189,"name":"AccessControlInvalidDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2448,"src":"9388:32:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9388:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2193,"nodeType":"RevertStatement","src":"9381:53:9"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2196,"name":"_acceptDefaultAdminTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"9454:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9454:29:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2198,"nodeType":"ExpressionStatement","src":"9454:29:9"}]},"documentation":{"id":2177,"nodeType":"StructuredDocumentation","src":"9079:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"cefc1429","id":2200,"implemented":true,"kind":"function","modifiers":[],"name":"acceptDefaultAdminTransfer","nameLocation":"9155:26:9","nodeType":"FunctionDefinition","parameters":{"id":2178,"nodeType":"ParameterList","parameters":[],"src":"9181:2:9"},"returnParameters":{"id":2179,"nodeType":"ParameterList","parameters":[],"src":"9199:0:9"},"scope":2436,"src":"9146:344:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2243,"nodeType":"Block","src":"9674:418:9","statements":[{"assignments":[2205,2207],"declarations":[{"constant":false,"id":2205,"mutability":"mutable","name":"newAdmin","nameLocation":"9693:8:9","nodeType":"VariableDeclaration","scope":2243,"src":"9685:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2204,"name":"address","nodeType":"ElementaryTypeName","src":"9685:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2207,"mutability":"mutable","name":"schedule","nameLocation":"9710:8:9","nodeType":"VariableDeclaration","scope":2243,"src":"9703:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2206,"name":"uint48","nodeType":"ElementaryTypeName","src":"9703:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2210,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2208,"name":"pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2048,"src":"9722:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$_t_uint48_$","typeString":"function () view returns (address,uint48)"}},"id":2209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9722:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$","typeString":"tuple(address,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9684:59:9"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9757:25:9","subExpression":{"arguments":[{"id":2212,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"9773:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2211,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"9758:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":2213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9758:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9786:29:9","subExpression":{"arguments":[{"id":2216,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"9806:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2215,"name":"_hasSchedulePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"9787:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) view returns (bool)"}},"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9787:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9757:58:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2225,"nodeType":"IfStatement","src":"9753:144:9","trueBody":{"id":2224,"nodeType":"Block","src":"9817:80:9","statements":[{"errorCall":{"arguments":[{"id":2221,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"9877:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2220,"name":"AccessControlEnforcedDefaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2456,"src":"9838:38:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint48_$returns$_t_error_$","typeString":"function (uint48) pure returns (error)"}},"id":2222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9838:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2223,"nodeType":"RevertStatement","src":"9831:55:9"}]}},{"expression":{"arguments":[{"id":2227,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"9918:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2228,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"9938:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9938:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2226,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[2001],"referencedDeclaration":2001,"src":"9906:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9906:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2231,"nodeType":"ExpressionStatement","src":"9906:47:9"},{"expression":{"arguments":[{"id":2233,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"9974:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2234,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"9994:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2232,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[1970],"referencedDeclaration":1970,"src":"9963:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":2235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9963:40:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2236,"nodeType":"ExpressionStatement","src":"9963:40:9"},{"expression":{"id":2238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10013:27:9","subExpression":{"id":2237,"name":"_pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"10020:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2239,"nodeType":"ExpressionStatement","src":"10013:27:9"},{"expression":{"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10050:35:9","subExpression":{"id":2240,"name":"_pendingDefaultAdminSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"10057:28:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2242,"nodeType":"ExpressionStatement","src":"10050:35:9"}]},"documentation":{"id":2201,"nodeType":"StructuredDocumentation","src":"9496:117:9","text":" @dev See {acceptDefaultAdminTransfer}.\n Internal function without access restriction."},"id":2244,"implemented":true,"kind":"function","modifiers":[],"name":"_acceptDefaultAdminTransfer","nameLocation":"9627:27:9","nodeType":"FunctionDefinition","parameters":{"id":2202,"nodeType":"ParameterList","parameters":[],"src":"9654:2:9"},"returnParameters":{"id":2203,"nodeType":"ParameterList","parameters":[],"src":"9674:0:9"},"scope":2436,"src":"9618:474:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2524],"body":{"id":2257,"nodeType":"Block","src":"10390:51:9","statements":[{"expression":{"arguments":[{"id":2254,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2247,"src":"10425:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2253,"name":"_changeDefaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2287,"src":"10400:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$returns$__$","typeString":"function (uint48)"}},"id":2255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10400:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2256,"nodeType":"ExpressionStatement","src":"10400:34:9"}]},"documentation":{"id":2245,"nodeType":"StructuredDocumentation","src":"10229:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"649a5ec7","id":2258,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2250,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"10370:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2251,"kind":"modifierInvocation","modifierName":{"id":2249,"name":"onlyRole","nameLocations":["10361:8:9"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"10361:8:9"},"nodeType":"ModifierInvocation","src":"10361:28:9"}],"name":"changeDefaultAdminDelay","nameLocation":"10305:23:9","nodeType":"FunctionDefinition","parameters":{"id":2248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2247,"mutability":"mutable","name":"newDelay","nameLocation":"10336:8:9","nodeType":"VariableDeclaration","scope":2258,"src":"10329:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2246,"name":"uint48","nodeType":"ElementaryTypeName","src":"10329:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10328:17:9"},"returnParameters":{"id":2252,"nodeType":"ParameterList","parameters":[],"src":"10390:0:9"},"scope":2436,"src":"10296:145:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2286,"nodeType":"Block","src":"10634:220:9","statements":[{"assignments":[2265],"declarations":[{"constant":false,"id":2265,"mutability":"mutable","name":"newSchedule","nameLocation":"10651:11:9","nodeType":"VariableDeclaration","scope":2286,"src":"10644:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2264,"name":"uint48","nodeType":"ElementaryTypeName","src":"10644:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2275,"initialValue":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":2274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":2268,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10683:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10689:9:9","memberName":"timestamp","nodeType":"MemberAccess","src":"10683:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2266,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"10665:8:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":2267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10674:8:9","memberName":"toUint48","nodeType":"MemberAccess","referencedDeclaration":6129,"src":"10665:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint48_$","typeString":"function (uint256) pure returns (uint48)"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10665:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":2272,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"10719:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2271,"name":"_delayChangeWait","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2339,"src":"10702:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_uint48_$","typeString":"function (uint48) view returns (uint48)"}},"id":2273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10702:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"10665:63:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"10644:84:9"},{"expression":{"arguments":[{"id":2277,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"10755:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":2278,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"10765:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2276,"name":"_setPendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2408,"src":"10738:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$_t_uint48_$returns$__$","typeString":"function (uint48,uint48)"}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10738:39:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2280,"nodeType":"ExpressionStatement","src":"10738:39:9"},{"eventCall":{"arguments":[{"id":2282,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"10825:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":2283,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2265,"src":"10835:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2281,"name":"DefaultAdminDelayChangeScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2473,"src":"10792:32:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint48_$_t_uint48_$returns$__$","typeString":"function (uint48,uint48)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10792:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2285,"nodeType":"EmitStatement","src":"10787:60:9"}]},"documentation":{"id":2259,"nodeType":"StructuredDocumentation","src":"10447:114:9","text":" @dev See {changeDefaultAdminDelay}.\n Internal function without access restriction."},"id":2287,"implemented":true,"kind":"function","modifiers":[],"name":"_changeDefaultAdminDelay","nameLocation":"10575:24:9","nodeType":"FunctionDefinition","parameters":{"id":2262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2261,"mutability":"mutable","name":"newDelay","nameLocation":"10607:8:9","nodeType":"VariableDeclaration","scope":2287,"src":"10600:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2260,"name":"uint48","nodeType":"ElementaryTypeName","src":"10600:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10599:17:9"},"returnParameters":{"id":2263,"nodeType":"ParameterList","parameters":[],"src":"10634:0:9"},"scope":2436,"src":"10566:288:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[2528],"body":{"id":2297,"nodeType":"Block","src":"11008:45:9","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2294,"name":"_rollbackDefaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11018:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11018:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2296,"nodeType":"ExpressionStatement","src":"11018:28:9"}]},"documentation":{"id":2288,"nodeType":"StructuredDocumentation","src":"10860:62:9","text":" @inheritdoc IAccessControlDefaultAdminRules"},"functionSelector":"0aa6220b","id":2298,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2291,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1222,"src":"10988:18:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2292,"kind":"modifierInvocation","modifierName":{"id":2290,"name":"onlyRole","nameLocations":["10979:8:9"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"10979:8:9"},"nodeType":"ModifierInvocation","src":"10979:28:9"}],"name":"rollbackDefaultAdminDelay","nameLocation":"10936:25:9","nodeType":"FunctionDefinition","parameters":{"id":2289,"nodeType":"ParameterList","parameters":[],"src":"10961:2:9"},"returnParameters":{"id":2293,"nodeType":"ParameterList","parameters":[],"src":"11008:0:9"},"scope":2436,"src":"10927:126:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":2307,"nodeType":"Block","src":"11235:39:9","statements":[{"expression":{"arguments":[{"hexValue":"30","id":2303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11262:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11265:1:9","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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2302,"name":"_setPendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2408,"src":"11245:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint48_$_t_uint48_$returns$__$","typeString":"function (uint48,uint48)"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11245:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2306,"nodeType":"ExpressionStatement","src":"11245:22:9"}]},"documentation":{"id":2299,"nodeType":"StructuredDocumentation","src":"11059:116:9","text":" @dev See {rollbackDefaultAdminDelay}.\n Internal function without access restriction."},"id":2308,"implemented":true,"kind":"function","modifiers":[],"name":"_rollbackDefaultAdminDelay","nameLocation":"11189:26:9","nodeType":"FunctionDefinition","parameters":{"id":2300,"nodeType":"ParameterList","parameters":[],"src":"11215:2:9"},"returnParameters":{"id":2301,"nodeType":"ParameterList","parameters":[],"src":"11235:0:9"},"scope":2436,"src":"11180:94:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2338,"nodeType":"Block","src":"11703:1167:9","statements":[{"assignments":[2317],"declarations":[{"constant":false,"id":2317,"mutability":"mutable","name":"currentDelay","nameLocation":"11720:12:9","nodeType":"VariableDeclaration","scope":2338,"src":"11713:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2316,"name":"uint48","nodeType":"ElementaryTypeName","src":"11713:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2320,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2318,"name":"defaultAdminDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"11735:17:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"11713:41:9"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2321,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2311,"src":"12673:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2322,"name":"currentDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"12684:12:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12673:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2333,"name":"currentDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"12840:12:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2334,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2311,"src":"12855:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12840:23:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12673:190:9","trueExpression":{"arguments":[{"arguments":[{"id":2328,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2311,"src":"12731:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[],"expression":{"argumentTypes":[],"id":2329,"name":"defaultAdminDelayIncreaseWait","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"12741:29:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12741:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":2326,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5374,"src":"12722:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$5374_$","typeString":"type(library Math)"}},"id":2327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12727:3:9","memberName":"min","nodeType":"MemberAccess","referencedDeclaration":4003,"src":"12722:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12722:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12715:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":2324,"name":"uint48","nodeType":"ElementaryTypeName","src":"12715:6:9","typeDescriptions":{}}},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12715:59:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":2315,"id":2337,"nodeType":"Return","src":"12654:209:9"}]},"documentation":{"id":2309,"nodeType":"StructuredDocumentation","src":"11280:336:9","text":" @dev Returns the amount of seconds to wait after the `newDelay` will\n become the new {defaultAdminDelay}.\n The value returned guarantees that if the delay is reduced, it will go into effect\n after a wait that honors the previously set delay.\n See {defaultAdminDelayIncreaseWait}."},"id":2339,"implemented":true,"kind":"function","modifiers":[],"name":"_delayChangeWait","nameLocation":"11630:16:9","nodeType":"FunctionDefinition","parameters":{"id":2312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2311,"mutability":"mutable","name":"newDelay","nameLocation":"11654:8:9","nodeType":"VariableDeclaration","scope":2339,"src":"11647:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2310,"name":"uint48","nodeType":"ElementaryTypeName","src":"11647:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11646:17:9"},"returnParameters":{"id":2315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2339,"src":"11695:6:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2313,"name":"uint48","nodeType":"ElementaryTypeName","src":"11695:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11694:8:9"},"scope":2436,"src":"11621:1249:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2368,"nodeType":"Block","src":"13141:446:9","statements":[{"assignments":[null,2348],"declarations":[null,{"constant":false,"id":2348,"mutability":"mutable","name":"oldSchedule","nameLocation":"13161:11:9","nodeType":"VariableDeclaration","scope":2368,"src":"13154:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2347,"name":"uint48","nodeType":"ElementaryTypeName","src":"13154:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2349,"name":"pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2048,"src":"13176:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$_t_uint48_$","typeString":"function () view returns (address,uint48)"}},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13176:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$","typeString":"tuple(address,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13151:46:9"},{"expression":{"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2352,"name":"_pendingDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"13208:20:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2353,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"13231:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13208:31:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2355,"nodeType":"ExpressionStatement","src":"13208:31:9"},{"expression":{"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2356,"name":"_pendingDefaultAdminSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"13249:28:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2357,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"13280:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"13249:42:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2359,"nodeType":"ExpressionStatement","src":"13249:42:9"},{"condition":{"arguments":[{"id":2361,"name":"oldSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"13418:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2360,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13403:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13403:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2367,"nodeType":"IfStatement","src":"13399:182:9","trueBody":{"id":2366,"nodeType":"Block","src":"13432:149:9","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2363,"name":"DefaultAdminTransferCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2466,"src":"13540:28:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13540:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2365,"nodeType":"EmitStatement","src":"13535:35:9"}]}}]},"documentation":{"id":2340,"nodeType":"StructuredDocumentation","src":"12917:140:9","text":" @dev Setter of the tuple for pending admin and its schedule.\n May emit a DefaultAdminTransferCanceled event."},"id":2369,"implemented":true,"kind":"function","modifiers":[],"name":"_setPendingDefaultAdmin","nameLocation":"13071:23:9","nodeType":"FunctionDefinition","parameters":{"id":2345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2342,"mutability":"mutable","name":"newAdmin","nameLocation":"13103:8:9","nodeType":"VariableDeclaration","scope":2369,"src":"13095:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2341,"name":"address","nodeType":"ElementaryTypeName","src":"13095:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2344,"mutability":"mutable","name":"newSchedule","nameLocation":"13120:11:9","nodeType":"VariableDeclaration","scope":2369,"src":"13113:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2343,"name":"uint48","nodeType":"ElementaryTypeName","src":"13113:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13094:38:9"},"returnParameters":{"id":2346,"nodeType":"ParameterList","parameters":[],"src":"13141:0:9"},"scope":2436,"src":"13062:525:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2407,"nodeType":"Block","src":"13812:514:9","statements":[{"assignments":[2378],"declarations":[{"constant":false,"id":2378,"mutability":"mutable","name":"oldSchedule","nameLocation":"13829:11:9","nodeType":"VariableDeclaration","scope":2407,"src":"13822:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2377,"name":"uint48","nodeType":"ElementaryTypeName","src":"13822:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":2380,"initialValue":{"id":2379,"name":"_pendingDelaySchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"13843:21:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"13822:42:9"},{"condition":{"arguments":[{"id":2382,"name":"oldSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2378,"src":"13894:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2381,"name":"_isScheduleSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13879:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) pure returns (bool)"}},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13879:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2398,"nodeType":"IfStatement","src":"13875:365:9","trueBody":{"id":2397,"nodeType":"Block","src":"13908:332:9","statements":[{"condition":{"arguments":[{"id":2385,"name":"oldSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2378,"src":"13945:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":2384,"name":"_hasSchedulePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2435,"src":"13926:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48) view returns (bool)"}},"id":2386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13926:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2395,"nodeType":"Block","src":"14074:156:9","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2392,"name":"DefaultAdminDelayChangeCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2476,"src":"14182:31:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14182:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2394,"nodeType":"EmitStatement","src":"14177:38:9"}]},"id":2396,"nodeType":"IfStatement","src":"13922:308:9","trueBody":{"id":2391,"nodeType":"Block","src":"13959:109:9","statements":[{"expression":{"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2387,"name":"_currentDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"14024:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2388,"name":"_pendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"14040:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14024:29:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2390,"nodeType":"ExpressionStatement","src":"14024:29:9"}]}}]}},{"expression":{"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2399,"name":"_pendingDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1749,"src":"14250:13:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2400,"name":"newDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2372,"src":"14266:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14250:24:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2402,"nodeType":"ExpressionStatement","src":"14250:24:9"},{"expression":{"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2403,"name":"_pendingDelaySchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"14284:21:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2404,"name":"newSchedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"14308:11:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14284:35:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":2406,"nodeType":"ExpressionStatement","src":"14284:35:9"}]},"documentation":{"id":2370,"nodeType":"StructuredDocumentation","src":"13593:143:9","text":" @dev Setter of the tuple for pending delay and its schedule.\n May emit a DefaultAdminDelayChangeCanceled event."},"id":2408,"implemented":true,"kind":"function","modifiers":[],"name":"_setPendingDelay","nameLocation":"13750:16:9","nodeType":"FunctionDefinition","parameters":{"id":2375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2372,"mutability":"mutable","name":"newDelay","nameLocation":"13774:8:9","nodeType":"VariableDeclaration","scope":2408,"src":"13767:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2371,"name":"uint48","nodeType":"ElementaryTypeName","src":"13767:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":2374,"mutability":"mutable","name":"newSchedule","nameLocation":"13791:11:9","nodeType":"VariableDeclaration","scope":2408,"src":"13784:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2373,"name":"uint48","nodeType":"ElementaryTypeName","src":"13784:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13766:37:9"},"returnParameters":{"id":2376,"nodeType":"ParameterList","parameters":[],"src":"13812:0:9"},"scope":2436,"src":"13741:585:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2420,"nodeType":"Block","src":"14540:37:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":2418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2416,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"14557:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14569:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14557:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2415,"id":2419,"nodeType":"Return","src":"14550:20:9"}]},"documentation":{"id":2409,"nodeType":"StructuredDocumentation","src":"14373:93:9","text":" @dev Defines if an `schedule` is considered set. For consistency purposes."},"id":2421,"implemented":true,"kind":"function","modifiers":[],"name":"_isScheduleSet","nameLocation":"14480:14:9","nodeType":"FunctionDefinition","parameters":{"id":2412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2411,"mutability":"mutable","name":"schedule","nameLocation":"14502:8:9","nodeType":"VariableDeclaration","scope":2421,"src":"14495:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2410,"name":"uint48","nodeType":"ElementaryTypeName","src":"14495:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14494:17:9"},"returnParameters":{"id":2415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2421,"src":"14534:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2413,"name":"bool","nodeType":"ElementaryTypeName","src":"14534:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14533:6:9"},"scope":2436,"src":"14471:106:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2434,"nodeType":"Block","src":"14757:50:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2429,"name":"schedule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2424,"src":"14774:8:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2430,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"14785:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14791:9:9","memberName":"timestamp","nodeType":"MemberAccess","src":"14785:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14774:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2428,"id":2433,"nodeType":"Return","src":"14767:33:9"}]},"documentation":{"id":2422,"nodeType":"StructuredDocumentation","src":"14583:96:9","text":" @dev Defines if an `schedule` is considered passed. For consistency purposes."},"id":2435,"implemented":true,"kind":"function","modifiers":[],"name":"_hasSchedulePassed","nameLocation":"14693:18:9","nodeType":"FunctionDefinition","parameters":{"id":2425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2424,"mutability":"mutable","name":"schedule","nameLocation":"14719:8:9","nodeType":"VariableDeclaration","scope":2435,"src":"14712:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2423,"name":"uint48","nodeType":"ElementaryTypeName","src":"14712:6:9","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14711:17:9"},"returnParameters":{"id":2428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2435,"src":"14751:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2426,"name":"bool","nodeType":"ElementaryTypeName","src":"14751:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14750:6:9"},"scope":2436,"src":"14684:123:9","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":2437,"src":"1697:13112:9","usedErrors":[1498,1501,2448,2451,2456,5384],"usedEvents":[1510,1519,1528,2463,2466,2473,2476]}],"src":"136:14674:9"},"id":9},"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol","exportedSymbols":{"IAccessControl":[1571],"IAccessControlDefaultAdminRules":[2535]},"id":2536,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2438,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"137:24:10"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"../IAccessControl.sol","id":2440,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2536,"sourceUnit":1572,"src":"163:53:10","symbolAliases":[{"foreign":{"id":2439,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"171:14:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2442,"name":"IAccessControl","nameLocations":["371:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1571,"src":"371:14:10"},"id":2443,"nodeType":"InheritanceSpecifier","src":"371:14:10"}],"canonicalName":"IAccessControlDefaultAdminRules","contractDependencies":[],"contractKind":"interface","documentation":{"id":2441,"nodeType":"StructuredDocumentation","src":"218:107:10","text":" @dev External interface of AccessControlDefaultAdminRules declared to support ERC-165 detection."},"fullyImplemented":false,"id":2535,"linearizedBaseContracts":[2535,1571],"name":"IAccessControlDefaultAdminRules","nameLocation":"336:31:10","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2444,"nodeType":"StructuredDocumentation","src":"392:75:10","text":" @dev The new default admin is not a valid default admin."},"errorSelector":"c22c8022","id":2448,"name":"AccessControlInvalidDefaultAdmin","nameLocation":"478:32:10","nodeType":"ErrorDefinition","parameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"defaultAdmin","nameLocation":"519:12:10","nodeType":"VariableDeclaration","scope":2448,"src":"511:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2445,"name":"address","nodeType":"ElementaryTypeName","src":"511:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"510:22:10"},"src":"472:61:10"},{"documentation":{"id":2449,"nodeType":"StructuredDocumentation","src":"539:299:10","text":" @dev At least one of the following rules was violated:\n - The `DEFAULT_ADMIN_ROLE` must only be managed by itself.\n - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time.\n - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps."},"errorSelector":"3fc3c27a","id":2451,"name":"AccessControlEnforcedDefaultAdminRules","nameLocation":"849:38:10","nodeType":"ErrorDefinition","parameters":{"id":2450,"nodeType":"ParameterList","parameters":[],"src":"887:2:10"},"src":"843:47:10"},{"documentation":{"id":2452,"nodeType":"StructuredDocumentation","src":"896:221:10","text":" @dev The delay for transferring the default admin delay is enforced and\n the operation must wait until `schedule`.\n NOTE: `schedule` can be 0 indicating there's no transfer scheduled."},"errorSelector":"19ca5ebb","id":2456,"name":"AccessControlEnforcedDefaultAdminDelay","nameLocation":"1128:38:10","nodeType":"ErrorDefinition","parameters":{"id":2455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2454,"mutability":"mutable","name":"schedule","nameLocation":"1174:8:10","nodeType":"VariableDeclaration","scope":2456,"src":"1167:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2453,"name":"uint48","nodeType":"ElementaryTypeName","src":"1167:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"1166:17:10"},"src":"1122:62:10"},{"anonymous":false,"documentation":{"id":2457,"nodeType":"StructuredDocumentation","src":"1190:232:10","text":" @dev Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next\n address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule`\n passes."},"eventSelector":"3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed6","id":2463,"name":"DefaultAdminTransferScheduled","nameLocation":"1433:29:10","nodeType":"EventDefinition","parameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2459,"indexed":true,"mutability":"mutable","name":"newAdmin","nameLocation":"1479:8:10","nodeType":"VariableDeclaration","scope":2463,"src":"1463:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2458,"name":"address","nodeType":"ElementaryTypeName","src":"1463:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2461,"indexed":false,"mutability":"mutable","name":"acceptSchedule","nameLocation":"1496:14:10","nodeType":"VariableDeclaration","scope":2463,"src":"1489:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2460,"name":"uint48","nodeType":"ElementaryTypeName","src":"1489:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"1462:49:10"},"src":"1427:85:10"},{"anonymous":false,"documentation":{"id":2464,"nodeType":"StructuredDocumentation","src":"1518:123:10","text":" @dev Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule."},"eventSelector":"8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109","id":2466,"name":"DefaultAdminTransferCanceled","nameLocation":"1652:28:10","nodeType":"EventDefinition","parameters":{"id":2465,"nodeType":"ParameterList","parameters":[],"src":"1680:2:10"},"src":"1646:37:10"},{"anonymous":false,"documentation":{"id":2467,"nodeType":"StructuredDocumentation","src":"1689:201:10","text":" @dev Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next\n delay to be applied between default admin transfer after `effectSchedule` has passed."},"eventSelector":"f1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b","id":2473,"name":"DefaultAdminDelayChangeScheduled","nameLocation":"1901:32:10","nodeType":"EventDefinition","parameters":{"id":2472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2469,"indexed":false,"mutability":"mutable","name":"newDelay","nameLocation":"1941:8:10","nodeType":"VariableDeclaration","scope":2473,"src":"1934:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2468,"name":"uint48","nodeType":"ElementaryTypeName","src":"1934:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":2471,"indexed":false,"mutability":"mutable","name":"effectSchedule","nameLocation":"1958:14:10","nodeType":"VariableDeclaration","scope":2473,"src":"1951:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2470,"name":"uint48","nodeType":"ElementaryTypeName","src":"1951:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"1933:40:10"},"src":"1895:79:10"},{"anonymous":false,"documentation":{"id":2474,"nodeType":"StructuredDocumentation","src":"1980:103:10","text":" @dev Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass."},"eventSelector":"2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5","id":2476,"name":"DefaultAdminDelayChangeCanceled","nameLocation":"2094:31:10","nodeType":"EventDefinition","parameters":{"id":2475,"nodeType":"ParameterList","parameters":[],"src":"2125:2:10"},"src":"2088:40:10"},{"documentation":{"id":2477,"nodeType":"StructuredDocumentation","src":"2134:87:10","text":" @dev Returns the address of the current `DEFAULT_ADMIN_ROLE` holder."},"functionSelector":"84ef8ffc","id":2482,"implemented":false,"kind":"function","modifiers":[],"name":"defaultAdmin","nameLocation":"2235:12:10","nodeType":"FunctionDefinition","parameters":{"id":2478,"nodeType":"ParameterList","parameters":[],"src":"2247:2:10"},"returnParameters":{"id":2481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2482,"src":"2273:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2479,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:10"},"scope":2535,"src":"2226:56:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2483,"nodeType":"StructuredDocumentation","src":"2288:443:10","text":" @dev Returns a tuple of a `newAdmin` and an accept schedule.\n After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role\n by calling {acceptDefaultAdminTransfer}, completing the role transfer.\n A zero value only in `acceptSchedule` indicates no pending admin transfer.\n NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced."},"functionSelector":"cf6eefb7","id":2490,"implemented":false,"kind":"function","modifiers":[],"name":"pendingDefaultAdmin","nameLocation":"2745:19:10","nodeType":"FunctionDefinition","parameters":{"id":2484,"nodeType":"ParameterList","parameters":[],"src":"2764:2:10"},"returnParameters":{"id":2489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2486,"mutability":"mutable","name":"newAdmin","nameLocation":"2798:8:10","nodeType":"VariableDeclaration","scope":2490,"src":"2790:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2485,"name":"address","nodeType":"ElementaryTypeName","src":"2790:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2488,"mutability":"mutable","name":"acceptSchedule","nameLocation":"2815:14:10","nodeType":"VariableDeclaration","scope":2490,"src":"2808:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2487,"name":"uint48","nodeType":"ElementaryTypeName","src":"2808:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"2789:41:10"},"scope":2535,"src":"2736:95:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2491,"nodeType":"StructuredDocumentation","src":"2837:451:10","text":" @dev Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started.\n This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set\n the acceptance schedule.\n NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this\n function returns the new delay. See {changeDefaultAdminDelay}."},"functionSelector":"cc8463c8","id":2496,"implemented":false,"kind":"function","modifiers":[],"name":"defaultAdminDelay","nameLocation":"3302:17:10","nodeType":"FunctionDefinition","parameters":{"id":2492,"nodeType":"ParameterList","parameters":[],"src":"3319:2:10"},"returnParameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2496,"src":"3345:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2493,"name":"uint48","nodeType":"ElementaryTypeName","src":"3345:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3344:8:10"},"scope":2535,"src":"3293:60:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2497,"nodeType":"StructuredDocumentation","src":"3359:482:10","text":" @dev Returns a tuple of `newDelay` and an effect schedule.\n After the `schedule` passes, the `newDelay` will get into effect immediately for every\n new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}.\n A zero value only in `effectSchedule` indicates no pending delay change.\n NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay}\n will be zero after the effect schedule."},"functionSelector":"a1eda53c","id":2504,"implemented":false,"kind":"function","modifiers":[],"name":"pendingDefaultAdminDelay","nameLocation":"3855:24:10","nodeType":"FunctionDefinition","parameters":{"id":2498,"nodeType":"ParameterList","parameters":[],"src":"3879:2:10"},"returnParameters":{"id":2503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2500,"mutability":"mutable","name":"newDelay","nameLocation":"3912:8:10","nodeType":"VariableDeclaration","scope":2504,"src":"3905:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2499,"name":"uint48","nodeType":"ElementaryTypeName","src":"3905:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":2502,"mutability":"mutable","name":"effectSchedule","nameLocation":"3929:14:10","nodeType":"VariableDeclaration","scope":2504,"src":"3922:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2501,"name":"uint48","nodeType":"ElementaryTypeName","src":"3922:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3904:40:10"},"scope":2535,"src":"3846:99:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":2505,"nodeType":"StructuredDocumentation","src":"3951:332:10","text":" @dev Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance\n after the current timestamp plus a {defaultAdminDelay}.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n Emits a DefaultAdminRoleChangeStarted event."},"functionSelector":"634e93da","id":2510,"implemented":false,"kind":"function","modifiers":[],"name":"beginDefaultAdminTransfer","nameLocation":"4297:25:10","nodeType":"FunctionDefinition","parameters":{"id":2508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2507,"mutability":"mutable","name":"newAdmin","nameLocation":"4331:8:10","nodeType":"VariableDeclaration","scope":2510,"src":"4323:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2506,"name":"address","nodeType":"ElementaryTypeName","src":"4323:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4322:18:10"},"returnParameters":{"id":2509,"nodeType":"ParameterList","parameters":[],"src":"4349:0:10"},"scope":2535,"src":"4288:62:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2511,"nodeType":"StructuredDocumentation","src":"4356:362:10","text":" @dev Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n May emit a DefaultAdminTransferCanceled event."},"functionSelector":"d602b9fd","id":2514,"implemented":false,"kind":"function","modifiers":[],"name":"cancelDefaultAdminTransfer","nameLocation":"4732:26:10","nodeType":"FunctionDefinition","parameters":{"id":2512,"nodeType":"ParameterList","parameters":[],"src":"4758:2:10"},"returnParameters":{"id":2513,"nodeType":"ParameterList","parameters":[],"src":"4769:0:10"},"scope":2535,"src":"4723:47:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2515,"nodeType":"StructuredDocumentation","src":"4776:539:10","text":" @dev Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}.\n After calling the function:\n - `DEFAULT_ADMIN_ROLE` should be granted to the caller.\n - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder.\n - {pendingDefaultAdmin} should be reset to zero values.\n Requirements:\n - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`.\n - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed."},"functionSelector":"cefc1429","id":2518,"implemented":false,"kind":"function","modifiers":[],"name":"acceptDefaultAdminTransfer","nameLocation":"5329:26:10","nodeType":"FunctionDefinition","parameters":{"id":2516,"nodeType":"ParameterList","parameters":[],"src":"5355:2:10"},"returnParameters":{"id":2517,"nodeType":"ParameterList","parameters":[],"src":"5366:0:10"},"scope":2535,"src":"5320:47:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2519,"nodeType":"StructuredDocumentation","src":"5373:1410:10","text":" @dev Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting\n into effect after the current timestamp plus a {defaultAdminDelay}.\n This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this\n method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay}\n set before calling.\n The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then\n calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin}\n complete transfer (including acceptance).\n The schedule is designed for two scenarios:\n - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by\n {defaultAdminDelayIncreaseWait}.\n - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`.\n A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event."},"functionSelector":"649a5ec7","id":2524,"implemented":false,"kind":"function","modifiers":[],"name":"changeDefaultAdminDelay","nameLocation":"6797:23:10","nodeType":"FunctionDefinition","parameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"newDelay","nameLocation":"6828:8:10","nodeType":"VariableDeclaration","scope":2524,"src":"6821:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2520,"name":"uint48","nodeType":"ElementaryTypeName","src":"6821:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6820:17:10"},"returnParameters":{"id":2523,"nodeType":"ParameterList","parameters":[],"src":"6846:0:10"},"scope":2535,"src":"6788:59:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2525,"nodeType":"StructuredDocumentation","src":"6853:229:10","text":" @dev Cancels a scheduled {defaultAdminDelay} change.\n Requirements:\n - Only can be called by the current {defaultAdmin}.\n May emit a DefaultAdminDelayChangeCanceled event."},"functionSelector":"0aa6220b","id":2528,"implemented":false,"kind":"function","modifiers":[],"name":"rollbackDefaultAdminDelay","nameLocation":"7096:25:10","nodeType":"FunctionDefinition","parameters":{"id":2526,"nodeType":"ParameterList","parameters":[],"src":"7121:2:10"},"returnParameters":{"id":2527,"nodeType":"ParameterList","parameters":[],"src":"7132:0:10"},"scope":2535,"src":"7087:46:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":2529,"nodeType":"StructuredDocumentation","src":"7139:952:10","text":" @dev Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay})\n to take effect. Default to 5 days.\n When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with\n the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds)\n that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can\n be overrode for a custom {defaultAdminDelay} increase scheduling.\n IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise,\n there's a risk of setting a high new delay that goes into effect almost immediately without the\n possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds)."},"functionSelector":"022d63fb","id":2534,"implemented":false,"kind":"function","modifiers":[],"name":"defaultAdminDelayIncreaseWait","nameLocation":"8105:29:10","nodeType":"FunctionDefinition","parameters":{"id":2530,"nodeType":"ParameterList","parameters":[],"src":"8134:2:10"},"returnParameters":{"id":2533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2534,"src":"8160:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":2531,"name":"uint48","nodeType":"ElementaryTypeName","src":"8160:6:10","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"8159:8:10"},"scope":2535,"src":"8096:72:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2536,"src":"326:7844:10","usedErrors":[1498,1501,2448,2451,2456],"usedEvents":[1510,1519,1528,2463,2466,2473,2476]}],"src":"137:8034:10"},"id":10},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","exportedSymbols":{"IERC1967":[2556]},"id":2557,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2537,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1967","contractDependencies":[],"contractKind":"interface","documentation":{"id":2538,"nodeType":"StructuredDocumentation","src":"133:101:11","text":" @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC."},"fullyImplemented":true,"id":2556,"linearizedBaseContracts":[2556],"name":"IERC1967","nameLocation":"245:8:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":2539,"nodeType":"StructuredDocumentation","src":"260:68:11","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","id":2543,"name":"Upgraded","nameLocation":"339:8:11","nodeType":"EventDefinition","parameters":{"id":2542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2541,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"364:14:11","nodeType":"VariableDeclaration","scope":2543,"src":"348:30:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2540,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:32:11"},"src":"333:47:11"},{"anonymous":false,"documentation":{"id":2544,"nodeType":"StructuredDocumentation","src":"386:67:11","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","id":2550,"name":"AdminChanged","nameLocation":"464:12:11","nodeType":"EventDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2546,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"485:13:11","nodeType":"VariableDeclaration","scope":2550,"src":"477:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2545,"name":"address","nodeType":"ElementaryTypeName","src":"477:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2548,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"508:8:11","nodeType":"VariableDeclaration","scope":2550,"src":"500:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"500:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"476:41:11"},"src":"458:60:11"},{"anonymous":false,"documentation":{"id":2551,"nodeType":"StructuredDocumentation","src":"524:59:11","text":" @dev Emitted when the beacon is changed."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","id":2555,"name":"BeaconUpgraded","nameLocation":"594:14:11","nodeType":"EventDefinition","parameters":{"id":2554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2553,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"625:6:11","nodeType":"VariableDeclaration","scope":2555,"src":"609:22:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2552,"name":"address","nodeType":"ElementaryTypeName","src":"609:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"608:24:11"},"src":"588:45:11"}],"scope":2557,"src":"235:400:11","usedErrors":[],"usedEvents":[2543,2550,2555]}],"src":"107:529:11"},"id":11},"@openzeppelin/contracts/interfaces/IERC5313.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5313.sol","exportedSymbols":{"IERC5313":[2566]},"id":2567,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2558,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"107:24:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC5313","contractDependencies":[],"contractKind":"interface","documentation":{"id":2559,"nodeType":"StructuredDocumentation","src":"133:164:12","text":" @dev Interface for the Light Contract Ownership Standard.\n A standardized minimal interface required to identify an account that controls a contract"},"fullyImplemented":false,"id":2566,"linearizedBaseContracts":[2566],"name":"IERC5313","nameLocation":"308:8:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2560,"nodeType":"StructuredDocumentation","src":"323:54:12","text":" @dev Gets the address of the owner."},"functionSelector":"8da5cb5b","id":2565,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"391:5:12","nodeType":"FunctionDefinition","parameters":{"id":2561,"nodeType":"ParameterList","parameters":[],"src":"396:2:12"},"returnParameters":{"id":2564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2565,"src":"422:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2562,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"421:9:12"},"scope":2566,"src":"382:49:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2567,"src":"298:135:12","usedErrors":[],"usedEvents":[]}],"src":"107:327:12"},"id":12},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"ERC1967Proxy":[2604],"ERC1967Utils":[2898],"Proxy":[2934]},"id":2605,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2568,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:13"},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"../Proxy.sol","id":2570,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2605,"sourceUnit":2935,"src":"140:35:13","symbolAliases":[{"foreign":{"id":2569,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2934,"src":"148:5:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"./ERC1967Utils.sol","id":2572,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2605,"sourceUnit":2899,"src":"176:48:13","symbolAliases":[{"foreign":{"id":2571,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"184:12:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2574,"name":"Proxy","nameLocations":["625:5:13"],"nodeType":"IdentifierPath","referencedDeclaration":2934,"src":"625:5:13"},"id":2575,"nodeType":"InheritanceSpecifier","src":"625:5:13"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":2573,"nodeType":"StructuredDocumentation","src":"226:373:13","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":2604,"linearizedBaseContracts":[2604,2934],"name":"ERC1967Proxy","nameLocation":"609:12:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":2590,"nodeType":"Block","src":"1145:69:13","statements":[{"expression":{"arguments":[{"id":2586,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2578,"src":"1185:14:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2587,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2580,"src":"1201:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2583,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"1155:12:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$2898_$","typeString":"type(library ERC1967Utils)"}},"id":2585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1168:16:13","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":2713,"src":"1155:29:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":2588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:52:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2589,"nodeType":"ExpressionStatement","src":"1155:52:13"}]},"documentation":{"id":2576,"nodeType":"StructuredDocumentation","src":"637:439:13","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"id":2591,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2578,"mutability":"mutable","name":"implementation","nameLocation":"1101:14:13","nodeType":"VariableDeclaration","scope":2591,"src":"1093:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2577,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2580,"mutability":"mutable","name":"_data","nameLocation":"1130:5:13","nodeType":"VariableDeclaration","scope":2591,"src":"1117:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2579,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1092:44:13"},"returnParameters":{"id":2582,"nodeType":"ParameterList","parameters":[],"src":"1145:0:13"},"scope":2604,"src":"1081:133:13","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[2915],"body":{"id":2602,"nodeType":"Block","src":"1659:56:13","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2598,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"1676:12:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$2898_$","typeString":"type(library ERC1967Utils)"}},"id":2599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1689:17:13","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":2650,"src":"1676:30:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1676:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2597,"id":2601,"nodeType":"Return","src":"1669:39:13"}]},"documentation":{"id":2592,"nodeType":"StructuredDocumentation","src":"1220:358:13","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"id":2603,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1592:15:13","nodeType":"FunctionDefinition","overrides":{"id":2594,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:13"},"parameters":{"id":2593,"nodeType":"ParameterList","parameters":[],"src":"1607:2:13"},"returnParameters":{"id":2597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2603,"src":"1650:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1649:9:13"},"scope":2604,"src":"1583:132:13","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2605,"src":"600:1117:13","usedErrors":[2624,2637,3138,3430],"usedEvents":[2543]}],"src":"114:1604:13"},"id":13},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","exportedSymbols":{"Address":[3387],"ERC1967Utils":[2898],"IBeacon":[2944],"IERC1967":[2556],"StorageSlot":[3732]},"id":2899,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2606,"literals":["solidity","^","0.8",".21"],"nodeType":"PragmaDirective","src":"114:24:14"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":2608,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2899,"sourceUnit":2945,"src":"140:46:14","symbolAliases":[{"foreign":{"id":2607,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"148:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","id":2610,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2899,"sourceUnit":2557,"src":"187:55:14","symbolAliases":[{"foreign":{"id":2609,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"195:8:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":2612,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2899,"sourceUnit":3388,"src":"243:48:14","symbolAliases":[{"foreign":{"id":2611,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"251:7:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":2614,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2899,"sourceUnit":3733,"src":"292:56:14","symbolAliases":[{"foreign":{"id":2613,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"300:11:14","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1967Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":2615,"nodeType":"StructuredDocumentation","src":"350:145:14","text":" @dev This library provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots."},"fullyImplemented":true,"id":2898,"linearizedBaseContracts":[2898],"name":"ERC1967Utils","nameLocation":"504:12:14","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":2616,"nodeType":"StructuredDocumentation","src":"523:170:14","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1."},"id":2619,"mutability":"constant","name":"IMPLEMENTATION_SLOT","nameLocation":"789:19:14","nodeType":"VariableDeclaration","scope":2898,"src":"763:114:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"763:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":2618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"811:66:14","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"documentation":{"id":2620,"nodeType":"StructuredDocumentation","src":"884:69:14","text":" @dev The `implementation` of the proxy is invalid."},"errorSelector":"4c9c8ce3","id":2624,"name":"ERC1967InvalidImplementation","nameLocation":"964:28:14","nodeType":"ErrorDefinition","parameters":{"id":2623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2622,"mutability":"mutable","name":"implementation","nameLocation":"1001:14:14","nodeType":"VariableDeclaration","scope":2624,"src":"993:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2621,"name":"address","nodeType":"ElementaryTypeName","src":"993:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"992:24:14"},"src":"958:59:14"},{"documentation":{"id":2625,"nodeType":"StructuredDocumentation","src":"1023:60:14","text":" @dev The `admin` of the proxy is invalid."},"errorSelector":"62e77ba2","id":2629,"name":"ERC1967InvalidAdmin","nameLocation":"1094:19:14","nodeType":"ErrorDefinition","parameters":{"id":2628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2627,"mutability":"mutable","name":"admin","nameLocation":"1122:5:14","nodeType":"VariableDeclaration","scope":2629,"src":"1114:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2626,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1113:15:14"},"src":"1088:41:14"},{"documentation":{"id":2630,"nodeType":"StructuredDocumentation","src":"1135:61:14","text":" @dev The `beacon` of the proxy is invalid."},"errorSelector":"64ced0ec","id":2634,"name":"ERC1967InvalidBeacon","nameLocation":"1207:20:14","nodeType":"ErrorDefinition","parameters":{"id":2633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2632,"mutability":"mutable","name":"beacon","nameLocation":"1236:6:14","nodeType":"VariableDeclaration","scope":2634,"src":"1228:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2631,"name":"address","nodeType":"ElementaryTypeName","src":"1228:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1227:16:14"},"src":"1201:43:14"},{"documentation":{"id":2635,"nodeType":"StructuredDocumentation","src":"1250:82:14","text":" @dev An upgrade function sees `msg.value > 0` that may be lost."},"errorSelector":"b398979f","id":2637,"name":"ERC1967NonPayable","nameLocation":"1343:17:14","nodeType":"ErrorDefinition","parameters":{"id":2636,"nodeType":"ParameterList","parameters":[],"src":"1360:2:14"},"src":"1337:26:14"},{"body":{"id":2649,"nodeType":"Block","src":"1502:77:14","statements":[{"expression":{"expression":{"arguments":[{"id":2645,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"1546:19:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2643,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"1519:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1531:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"1519:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:47:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1567:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"1519:53:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2642,"id":2648,"nodeType":"Return","src":"1512:60:14"}]},"documentation":{"id":2638,"nodeType":"StructuredDocumentation","src":"1369:67:14","text":" @dev Returns the current implementation address."},"id":2650,"implemented":true,"kind":"function","modifiers":[],"name":"getImplementation","nameLocation":"1450:17:14","nodeType":"FunctionDefinition","parameters":{"id":2639,"nodeType":"ParameterList","parameters":[],"src":"1467:2:14"},"returnParameters":{"id":2642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2650,"src":"1493:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2640,"name":"address","nodeType":"ElementaryTypeName","src":"1493:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1492:9:14"},"scope":2898,"src":"1441:138:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2676,"nodeType":"Block","src":"1734:218:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2656,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"1748:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1766:4:14","memberName":"code","nodeType":"MemberAccess","src":"1748:22:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1771:6:14","memberName":"length","nodeType":"MemberAccess","src":"1748:29:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1781:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1748:34:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2666,"nodeType":"IfStatement","src":"1744:119:14","trueBody":{"id":2665,"nodeType":"Block","src":"1784:79:14","statements":[{"errorCall":{"arguments":[{"id":2662,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"1834:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2661,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2624,"src":"1805:28:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:47:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2664,"nodeType":"RevertStatement","src":"1798:54:14"}]}},{"expression":{"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2670,"name":"IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2619,"src":"1899:19:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2667,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"1872:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1884:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"1872:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:47:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1920:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"1872:53:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2673,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"1928:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1872:73:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2675,"nodeType":"ExpressionStatement","src":"1872:73:14"}]},"documentation":{"id":2651,"nodeType":"StructuredDocumentation","src":"1585:81:14","text":" @dev Stores a new address in the ERC-1967 implementation slot."},"id":2677,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1680:18:14","nodeType":"FunctionDefinition","parameters":{"id":2654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2653,"mutability":"mutable","name":"newImplementation","nameLocation":"1707:17:14","nodeType":"VariableDeclaration","scope":2677,"src":"1699:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2652,"name":"address","nodeType":"ElementaryTypeName","src":"1699:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1698:27:14"},"returnParameters":{"id":2655,"nodeType":"ParameterList","parameters":[],"src":"1734:0:14"},"scope":2898,"src":"1671:281:14","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2712,"nodeType":"Block","src":"2345:263:14","statements":[{"expression":{"arguments":[{"id":2686,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2680,"src":"2374:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2685,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2677,"src":"2355:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2688,"nodeType":"ExpressionStatement","src":"2355:37:14"},{"eventCall":{"arguments":[{"id":2692,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2680,"src":"2425:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2689,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"2407:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$2556_$","typeString":"type(contract IERC1967)"}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2416:8:14","memberName":"Upgraded","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"2407:17:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2694,"nodeType":"EmitStatement","src":"2402:41:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2695,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2682,"src":"2458:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2463:6:14","memberName":"length","nodeType":"MemberAccess","src":"2458:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2472:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2458:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2710,"nodeType":"Block","src":"2559:43:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2707,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"2573:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2709,"nodeType":"ExpressionStatement","src":"2573:18:14"}]},"id":2711,"nodeType":"IfStatement","src":"2454:148:14","trueBody":{"id":2706,"nodeType":"Block","src":"2475:78:14","statements":[{"expression":{"arguments":[{"id":2702,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2680,"src":"2518:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2703,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2682,"src":"2537:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2699,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"2489:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$3387_$","typeString":"type(library Address)"}},"id":2701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2497:20:14","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":3304,"src":"2489:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2489:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2705,"nodeType":"ExpressionStatement","src":"2489:53:14"}]}}]},"documentation":{"id":2678,"nodeType":"StructuredDocumentation","src":"1958:301:14","text":" @dev Performs implementation upgrade with additional setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-Upgraded} event."},"id":2713,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"2273:16:14","nodeType":"FunctionDefinition","parameters":{"id":2683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2680,"mutability":"mutable","name":"newImplementation","nameLocation":"2298:17:14","nodeType":"VariableDeclaration","scope":2713,"src":"2290:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2679,"name":"address","nodeType":"ElementaryTypeName","src":"2290:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2682,"mutability":"mutable","name":"data","nameLocation":"2330:4:14","nodeType":"VariableDeclaration","scope":2713,"src":"2317:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2681,"name":"bytes","nodeType":"ElementaryTypeName","src":"2317:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2289:46:14"},"returnParameters":{"id":2684,"nodeType":"ParameterList","parameters":[],"src":"2345:0:14"},"scope":2898,"src":"2264:344:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":2714,"nodeType":"StructuredDocumentation","src":"2614:145:14","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1."},"id":2717,"mutability":"constant","name":"ADMIN_SLOT","nameLocation":"2855:10:14","nodeType":"VariableDeclaration","scope":2898,"src":"2829:105:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2829:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":2716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2868:66:14","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"body":{"id":2729,"nodeType":"Block","src":"3339:68:14","statements":[{"expression":{"expression":{"arguments":[{"id":2725,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"3383:10:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2723,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"3356:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3368:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"3356:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3395:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"3356:44:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2722,"id":2728,"nodeType":"Return","src":"3349:51:14"}]},"documentation":{"id":2718,"nodeType":"StructuredDocumentation","src":"2941:341:14","text":" @dev Returns the current admin.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"id":2730,"implemented":true,"kind":"function","modifiers":[],"name":"getAdmin","nameLocation":"3296:8:14","nodeType":"FunctionDefinition","parameters":{"id":2719,"nodeType":"ParameterList","parameters":[],"src":"3304:2:14"},"returnParameters":{"id":2722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2730,"src":"3330:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2720,"name":"address","nodeType":"ElementaryTypeName","src":"3330:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3329:9:14"},"scope":2898,"src":"3287:120:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2760,"nodeType":"Block","src":"3535:172:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2736,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"3549:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:1:14","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":2738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3561:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2737,"name":"address","nodeType":"ElementaryTypeName","src":"3561:7:14","typeDescriptions":{}}},"id":2740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3549:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2750,"nodeType":"IfStatement","src":"3545:91:14","trueBody":{"id":2749,"nodeType":"Block","src":"3573:63:14","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":2745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3622:1:14","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":2744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3614:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2743,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:14","typeDescriptions":{}}},"id":2746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2742,"name":"ERC1967InvalidAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"3594:19:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3594:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2748,"nodeType":"RevertStatement","src":"3587:38:14"}]}},{"expression":{"id":2758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2754,"name":"ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"3672:10:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2751,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"3645:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3657:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"3645:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3645:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3684:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"3645:44:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2757,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2733,"src":"3692:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3645:55:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2759,"nodeType":"ExpressionStatement","src":"3645:55:14"}]},"documentation":{"id":2731,"nodeType":"StructuredDocumentation","src":"3413:72:14","text":" @dev Stores a new address in the ERC-1967 admin slot."},"id":2761,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"3499:9:14","nodeType":"FunctionDefinition","parameters":{"id":2734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2733,"mutability":"mutable","name":"newAdmin","nameLocation":"3517:8:14","nodeType":"VariableDeclaration","scope":2761,"src":"3509:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2732,"name":"address","nodeType":"ElementaryTypeName","src":"3509:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3508:18:14"},"returnParameters":{"id":2735,"nodeType":"ParameterList","parameters":[],"src":"3535:0:14"},"scope":2898,"src":"3490:217:14","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2779,"nodeType":"Block","src":"3875:94:14","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2770,"name":"getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2730,"src":"3912:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3912:10:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2772,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"3924:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2767,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"3890:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$2556_$","typeString":"type(contract IERC1967)"}},"id":2769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3899:12:14","memberName":"AdminChanged","nodeType":"MemberAccess","referencedDeclaration":2550,"src":"3890:21:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3890:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2774,"nodeType":"EmitStatement","src":"3885:48:14"},{"expression":{"arguments":[{"id":2776,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2764,"src":"3953:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2775,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2761,"src":"3943:9:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3943:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2778,"nodeType":"ExpressionStatement","src":"3943:19:14"}]},"documentation":{"id":2762,"nodeType":"StructuredDocumentation","src":"3713:109:14","text":" @dev Changes the admin of the proxy.\n Emits an {IERC1967-AdminChanged} event."},"id":2780,"implemented":true,"kind":"function","modifiers":[],"name":"changeAdmin","nameLocation":"3836:11:14","nodeType":"FunctionDefinition","parameters":{"id":2765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2764,"mutability":"mutable","name":"newAdmin","nameLocation":"3856:8:14","nodeType":"VariableDeclaration","scope":2780,"src":"3848:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2763,"name":"address","nodeType":"ElementaryTypeName","src":"3848:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3847:18:14"},"returnParameters":{"id":2766,"nodeType":"ParameterList","parameters":[],"src":"3875:0:14"},"scope":2898,"src":"3827:142:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":2781,"nodeType":"StructuredDocumentation","src":"3975:201:14","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is the keccak-256 hash of \"eip1967.proxy.beacon\" subtracted by 1."},"id":2784,"mutability":"constant","name":"BEACON_SLOT","nameLocation":"4272:11:14","nodeType":"VariableDeclaration","scope":2898,"src":"4246:106:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4246:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":2783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4286:66:14","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"body":{"id":2796,"nodeType":"Block","src":"4468:69:14","statements":[{"expression":{"expression":{"arguments":[{"id":2792,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2784,"src":"4512:11:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2790,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"4485:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4497:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"4485:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4485:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4525:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"4485:45:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2789,"id":2795,"nodeType":"Return","src":"4478:52:14"}]},"documentation":{"id":2785,"nodeType":"StructuredDocumentation","src":"4359:51:14","text":" @dev Returns the current beacon."},"id":2797,"implemented":true,"kind":"function","modifiers":[],"name":"getBeacon","nameLocation":"4424:9:14","nodeType":"FunctionDefinition","parameters":{"id":2786,"nodeType":"ParameterList","parameters":[],"src":"4433:2:14"},"returnParameters":{"id":2789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2797,"src":"4459:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2787,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4458:9:14"},"scope":2898,"src":"4415:122:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2842,"nodeType":"Block","src":"4667:390:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2803,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"4681:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4691:4:14","memberName":"code","nodeType":"MemberAccess","src":"4681:14:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4696:6:14","memberName":"length","nodeType":"MemberAccess","src":"4681:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4706:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4681:26:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2813,"nodeType":"IfStatement","src":"4677:95:14","trueBody":{"id":2812,"nodeType":"Block","src":"4709:63:14","statements":[{"errorCall":{"arguments":[{"id":2809,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"4751:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2808,"name":"ERC1967InvalidBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2634,"src":"4730:20:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2811,"nodeType":"RevertStatement","src":"4723:38:14"}]}},{"expression":{"id":2821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2817,"name":"BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2784,"src":"4809:11:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2814,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3732,"src":"4782:11:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$3732_$","typeString":"type(library StorageSlot)"}},"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4794:14:14","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"4782:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$3614_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4782:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":2819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4822:5:14","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3613,"src":"4782:45:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2820,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"4830:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4782:57:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2822,"nodeType":"ExpressionStatement","src":"4782:57:14"},{"assignments":[2824],"declarations":[{"constant":false,"id":2824,"mutability":"mutable","name":"beaconImplementation","nameLocation":"4858:20:14","nodeType":"VariableDeclaration","scope":2842,"src":"4850:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2823,"name":"address","nodeType":"ElementaryTypeName","src":"4850:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2830,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2826,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"4889:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2825,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"4881:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$2944_$","typeString":"type(contract IBeacon)"}},"id":2827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$2944","typeString":"contract IBeacon"}},"id":2828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4900:14:14","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":2943,"src":"4881:33:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":2829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4850:66:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2831,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"4930:20:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4951:4:14","memberName":"code","nodeType":"MemberAccess","src":"4930:25:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4956:6:14","memberName":"length","nodeType":"MemberAccess","src":"4930:32:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4966:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4930:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2841,"nodeType":"IfStatement","src":"4926:125:14","trueBody":{"id":2840,"nodeType":"Block","src":"4969:82:14","statements":[{"errorCall":{"arguments":[{"id":2837,"name":"beaconImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"5019:20:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2836,"name":"ERC1967InvalidImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2624,"src":"4990:28:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":2838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4990:50:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2839,"nodeType":"RevertStatement","src":"4983:57:14"}]}}]},"documentation":{"id":2798,"nodeType":"StructuredDocumentation","src":"4543:72:14","text":" @dev Stores a new beacon in the ERC-1967 beacon slot."},"id":2843,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"4629:10:14","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2800,"mutability":"mutable","name":"newBeacon","nameLocation":"4648:9:14","nodeType":"VariableDeclaration","scope":2843,"src":"4640:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2799,"name":"address","nodeType":"ElementaryTypeName","src":"4640:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4639:19:14"},"returnParameters":{"id":2802,"nodeType":"ParameterList","parameters":[],"src":"4667:0:14"},"scope":2898,"src":"4620:437:14","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":2882,"nodeType":"Block","src":"5661:263:14","statements":[{"expression":{"arguments":[{"id":2852,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"5682:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2851,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"5671:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5671:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2854,"nodeType":"ExpressionStatement","src":"5671:21:14"},{"eventCall":{"arguments":[{"id":2858,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"5731:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2855,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"5707:8:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1967_$2556_$","typeString":"type(contract IERC1967)"}},"id":2857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5716:14:14","memberName":"BeaconUpgraded","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"5707:23:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5707:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2860,"nodeType":"EmitStatement","src":"5702:39:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2861,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"5756:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5761:6:14","memberName":"length","nodeType":"MemberAccess","src":"5756:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5770:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5756:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2880,"nodeType":"Block","src":"5875:43:14","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2877,"name":"_checkNonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2897,"src":"5889:16:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5889:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2879,"nodeType":"ExpressionStatement","src":"5889:18:14"}]},"id":2881,"nodeType":"IfStatement","src":"5752:166:14","trueBody":{"id":2876,"nodeType":"Block","src":"5773:96:14","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2869,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"5824:9:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2868,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2944,"src":"5816:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$2944_$","typeString":"type(contract IBeacon)"}},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$2944","typeString":"contract IBeacon"}},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5835:14:14","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":2943,"src":"5816:33:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5816:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2873,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"5853:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2865,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3387,"src":"5787:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$3387_$","typeString":"type(library Address)"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5795:20:14","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":3304,"src":"5787:28:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":2874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5787:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2875,"nodeType":"ExpressionStatement","src":"5787:71:14"}]}}]},"documentation":{"id":2844,"nodeType":"StructuredDocumentation","src":"5063:514:14","text":" @dev Change the beacon and trigger a setup call if data is nonempty.\n This function is payable only if the setup call is performed, otherwise `msg.value` is rejected\n to avoid stuck value in the contract.\n Emits an {IERC1967-BeaconUpgraded} event.\n CAUTION: Invoking this function has no effect on an instance of {BeaconProxy} since v5, since\n it uses an immutable beacon without looking at the value of the ERC-1967 beacon slot for\n efficiency."},"id":2883,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeBeaconToAndCall","nameLocation":"5591:22:14","nodeType":"FunctionDefinition","parameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2846,"mutability":"mutable","name":"newBeacon","nameLocation":"5622:9:14","nodeType":"VariableDeclaration","scope":2883,"src":"5614:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2845,"name":"address","nodeType":"ElementaryTypeName","src":"5614:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2848,"mutability":"mutable","name":"data","nameLocation":"5646:4:14","nodeType":"VariableDeclaration","scope":2883,"src":"5633:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2847,"name":"bytes","nodeType":"ElementaryTypeName","src":"5633:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5613:38:14"},"returnParameters":{"id":2850,"nodeType":"ParameterList","parameters":[],"src":"5661:0:14"},"scope":2898,"src":"5582:342:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2896,"nodeType":"Block","src":"6149:86:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2887,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6163:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6167:5:14","memberName":"value","nodeType":"MemberAccess","src":"6163:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6163:13:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2895,"nodeType":"IfStatement","src":"6159:70:14","trueBody":{"id":2894,"nodeType":"Block","src":"6178:51:14","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2891,"name":"ERC1967NonPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"6199:17:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":2892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6199:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2893,"nodeType":"RevertStatement","src":"6192:26:14"}]}}]},"documentation":{"id":2884,"nodeType":"StructuredDocumentation","src":"5930:178:14","text":" @dev Reverts if `msg.value` is not zero. It can be used to avoid `msg.value` stuck in the contract\n if an upgrade doesn't perform an initialization call."},"id":2897,"implemented":true,"kind":"function","modifiers":[],"name":"_checkNonPayable","nameLocation":"6122:16:14","nodeType":"FunctionDefinition","parameters":{"id":2885,"nodeType":"ParameterList","parameters":[],"src":"6138:2:14"},"returnParameters":{"id":2886,"nodeType":"ParameterList","parameters":[],"src":"6149:0:14"},"scope":2898,"src":"6113:122:14","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":2899,"src":"496:5741:14","usedErrors":[2624,2629,2634,2637],"usedEvents":[]}],"src":"114:6124:14"},"id":14},"@openzeppelin/contracts/proxy/Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","exportedSymbols":{"Proxy":[2934]},"id":2935,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2900,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"99:24:15"},{"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":2901,"nodeType":"StructuredDocumentation","src":"125:598:15","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":2934,"linearizedBaseContracts":[2934],"name":"Proxy","nameLocation":"742:5:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2908,"nodeType":"Block","src":"1009:835:15","statements":[{"AST":{"nativeSrc":"1028:810:15","nodeType":"YulBlock","src":"1028:810:15","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1281:1:15","nodeType":"YulLiteral","src":"1281:1:15","type":"","value":"0"},{"kind":"number","nativeSrc":"1284:1:15","nodeType":"YulLiteral","src":"1284:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1287:12:15","nodeType":"YulIdentifier","src":"1287:12:15"},"nativeSrc":"1287:14:15","nodeType":"YulFunctionCall","src":"1287:14:15"}],"functionName":{"name":"calldatacopy","nativeSrc":"1268:12:15","nodeType":"YulIdentifier","src":"1268:12:15"},"nativeSrc":"1268:34:15","nodeType":"YulFunctionCall","src":"1268:34:15"},"nativeSrc":"1268:34:15","nodeType":"YulExpressionStatement","src":"1268:34:15"},{"nativeSrc":"1429:74:15","nodeType":"YulVariableDeclaration","src":"1429:74:15","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1456:3:15","nodeType":"YulIdentifier","src":"1456:3:15"},"nativeSrc":"1456:5:15","nodeType":"YulFunctionCall","src":"1456:5:15"},{"name":"implementation","nativeSrc":"1463:14:15","nodeType":"YulIdentifier","src":"1463:14:15"},{"kind":"number","nativeSrc":"1479:1:15","nodeType":"YulLiteral","src":"1479:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1482:12:15","nodeType":"YulIdentifier","src":"1482:12:15"},"nativeSrc":"1482:14:15","nodeType":"YulFunctionCall","src":"1482:14:15"},{"kind":"number","nativeSrc":"1498:1:15","nodeType":"YulLiteral","src":"1498:1:15","type":"","value":"0"},{"kind":"number","nativeSrc":"1501:1:15","nodeType":"YulLiteral","src":"1501:1:15","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1443:12:15","nodeType":"YulIdentifier","src":"1443:12:15"},"nativeSrc":"1443:60:15","nodeType":"YulFunctionCall","src":"1443:60:15"},"variables":[{"name":"result","nativeSrc":"1433:6:15","nodeType":"YulTypedName","src":"1433:6:15","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1571:1:15","nodeType":"YulLiteral","src":"1571:1:15","type":"","value":"0"},{"kind":"number","nativeSrc":"1574:1:15","nodeType":"YulLiteral","src":"1574:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1577:14:15","nodeType":"YulIdentifier","src":"1577:14:15"},"nativeSrc":"1577:16:15","nodeType":"YulFunctionCall","src":"1577:16:15"}],"functionName":{"name":"returndatacopy","nativeSrc":"1556:14:15","nodeType":"YulIdentifier","src":"1556:14:15"},"nativeSrc":"1556:38:15","nodeType":"YulFunctionCall","src":"1556:38:15"},"nativeSrc":"1556:38:15","nodeType":"YulExpressionStatement","src":"1556:38:15"},{"cases":[{"body":{"nativeSrc":"1689:59:15","nodeType":"YulBlock","src":"1689:59:15","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1714:1:15","nodeType":"YulLiteral","src":"1714:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1717:14:15","nodeType":"YulIdentifier","src":"1717:14:15"},"nativeSrc":"1717:16:15","nodeType":"YulFunctionCall","src":"1717:16:15"}],"functionName":{"name":"revert","nativeSrc":"1707:6:15","nodeType":"YulIdentifier","src":"1707:6:15"},"nativeSrc":"1707:27:15","nodeType":"YulFunctionCall","src":"1707:27:15"},"nativeSrc":"1707:27:15","nodeType":"YulExpressionStatement","src":"1707:27:15"}]},"nativeSrc":"1682:66:15","nodeType":"YulCase","src":"1682:66:15","value":{"kind":"number","nativeSrc":"1687:1:15","nodeType":"YulLiteral","src":"1687:1:15","type":"","value":"0"}},{"body":{"nativeSrc":"1769:59:15","nodeType":"YulBlock","src":"1769:59:15","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1794:1:15","nodeType":"YulLiteral","src":"1794:1:15","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1797:14:15","nodeType":"YulIdentifier","src":"1797:14:15"},"nativeSrc":"1797:16:15","nodeType":"YulFunctionCall","src":"1797:16:15"}],"functionName":{"name":"return","nativeSrc":"1787:6:15","nodeType":"YulIdentifier","src":"1787:6:15"},"nativeSrc":"1787:27:15","nodeType":"YulFunctionCall","src":"1787:27:15"},"nativeSrc":"1787:27:15","nodeType":"YulExpressionStatement","src":"1787:27:15"}]},"nativeSrc":"1761:67:15","nodeType":"YulCase","src":"1761:67:15","value":"default"}],"expression":{"name":"result","nativeSrc":"1615:6:15","nodeType":"YulIdentifier","src":"1615:6:15"},"nativeSrc":"1608:220:15","nodeType":"YulSwitch","src":"1608:220:15"}]},"evmVersion":"paris","externalReferences":[{"declaration":2904,"isOffset":false,"isSlot":false,"src":"1463:14:15","valueSize":1}],"id":2907,"nodeType":"InlineAssembly","src":"1019:819:15"}]},"documentation":{"id":2902,"nodeType":"StructuredDocumentation","src":"754:190:15","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":2909,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"958:9:15","nodeType":"FunctionDefinition","parameters":{"id":2905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2904,"mutability":"mutable","name":"implementation","nameLocation":"976:14:15","nodeType":"VariableDeclaration","scope":2909,"src":"968:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2903,"name":"address","nodeType":"ElementaryTypeName","src":"968:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"967:24:15"},"returnParameters":{"id":2906,"nodeType":"ParameterList","parameters":[],"src":"1009:0:15"},"scope":2934,"src":"949:895:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":2910,"nodeType":"StructuredDocumentation","src":"1850:173:15","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback\n function and {_fallback} should delegate."},"id":2915,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2037:15:15","nodeType":"FunctionDefinition","parameters":{"id":2911,"nodeType":"ParameterList","parameters":[],"src":"2052:2:15"},"returnParameters":{"id":2914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2915,"src":"2086:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2912,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2085:9:15"},"scope":2934,"src":"2028:67:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2924,"nodeType":"Block","src":"2361:45:15","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2920,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2915,"src":"2381:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2381:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2919,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"2371:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2371:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2923,"nodeType":"ExpressionStatement","src":"2371:28:15"}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"2101:217:15","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":2925,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2332:9:15","nodeType":"FunctionDefinition","parameters":{"id":2917,"nodeType":"ParameterList","parameters":[],"src":"2341:2:15"},"returnParameters":{"id":2918,"nodeType":"ParameterList","parameters":[],"src":"2361:0:15"},"scope":2934,"src":"2323:83:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2932,"nodeType":"Block","src":"2639:28:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2929,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2925,"src":"2649:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2649:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2931,"nodeType":"ExpressionStatement","src":"2649:11:15"}]},"documentation":{"id":2926,"nodeType":"StructuredDocumentation","src":"2412:186:15","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":2933,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2927,"nodeType":"ParameterList","parameters":[],"src":"2611:2:15"},"returnParameters":{"id":2928,"nodeType":"ParameterList","parameters":[],"src":"2639:0:15"},"scope":2934,"src":"2603:64:15","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":2935,"src":"724:1945:15","usedErrors":[],"usedEvents":[]}],"src":"99:2571:15"},"id":15},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[2944]},"id":2945,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2936,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:16"},{"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":2937,"nodeType":"StructuredDocumentation","src":"134:79:16","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":2944,"linearizedBaseContracts":[2944],"name":"IBeacon","nameLocation":"224:7:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2938,"nodeType":"StructuredDocumentation","src":"238:168:16","text":" @dev Must return an address that can be used as a delegate call target.\n {UpgradeableBeacon} will check that this address is a contract."},"functionSelector":"5c60da1b","id":2943,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"420:14:16","nodeType":"FunctionDefinition","parameters":{"id":2939,"nodeType":"ParameterList","parameters":[],"src":"434:2:16"},"returnParameters":{"id":2942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2941,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2943,"src":"460:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2940,"name":"address","nodeType":"ElementaryTypeName","src":"460:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"459:9:16"},"scope":2944,"src":"411:58:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2945,"src":"214:257:16","usedErrors":[],"usedEvents":[]}],"src":"108:364:16"},"id":16},"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol","exportedSymbols":{"ITransparentUpgradeableProxy":[3014],"Ownable":[1719],"ProxyAdmin":[2992]},"id":2993,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2946,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"116:24:17"},{"absolutePath":"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","file":"./TransparentUpgradeableProxy.sol","id":2948,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2993,"sourceUnit":3129,"src":"142:79:17","symbolAliases":[{"foreign":{"id":2947,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"150:28:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"../../access/Ownable.sol","id":2950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2993,"sourceUnit":1720,"src":"222:49:17","symbolAliases":[{"foreign":{"id":2949,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"230:7:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2952,"name":"Ownable","nameLocations":["525:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":1719,"src":"525:7:17"},"id":2953,"nodeType":"InheritanceSpecifier","src":"525:7:17"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":2951,"nodeType":"StructuredDocumentation","src":"273:228:17","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"id":2992,"linearizedBaseContracts":[2992,1719,3417],"name":"ProxyAdmin","nameLocation":"511:10:17","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":2954,"nodeType":"StructuredDocumentation","src":"539:643:17","text":" @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)`\n and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called,\n while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string.\n If the getter returns `\"5.0.0\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must\n be the empty byte string if no function should be called, making it impossible to invoke the `receive` function\n during an upgrade."},"functionSelector":"ad3cb1cc","id":2957,"mutability":"constant","name":"UPGRADE_INTERFACE_VERSION","nameLocation":"1210:25:17","nodeType":"VariableDeclaration","scope":2992,"src":"1187:58:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2955,"name":"string","nodeType":"ElementaryTypeName","src":"1187:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"352e302e30","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1238:7:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ade050ecfcf8ae20ae1d10a23573f9d7e0bad85e74a2cf8338a65401e64558c","typeString":"literal_string \"5.0.0\""},"value":"5.0.0"},"visibility":"public"},{"body":{"id":2966,"nodeType":"Block","src":"1385:2:17","statements":[]},"documentation":{"id":2958,"nodeType":"StructuredDocumentation","src":"1252:72:17","text":" @dev Sets the initial owner who can perform upgrades."},"id":2967,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2963,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"1371:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2964,"kind":"baseConstructorSpecifier","modifierName":{"id":2962,"name":"Ownable","nameLocations":["1363:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":1719,"src":"1363:7:17"},"nodeType":"ModifierInvocation","src":"1363:21:17"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2960,"mutability":"mutable","name":"initialOwner","nameLocation":"1349:12:17","nodeType":"VariableDeclaration","scope":2967,"src":"1341:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2959,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1340:22:17"},"returnParameters":{"id":2965,"nodeType":"ParameterList","parameters":[],"src":"1385:0:17"},"scope":2992,"src":"1329:58:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2990,"nodeType":"Block","src":"1883:79:17","statements":[{"expression":{"arguments":[{"id":2986,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2973,"src":"1934:14:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2987,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"1950:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2980,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2971,"src":"1893:5:17","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$3014","typeString":"contract ITransparentUpgradeableProxy"}},"id":2982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1899:16:17","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":3013,"src":"1893:22:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":2983,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1923:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1927:5:17","memberName":"value","nodeType":"MemberAccess","src":"1923:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1893:40:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":2988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1893:62:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2989,"nodeType":"ExpressionStatement","src":"1893:62:17"}]},"documentation":{"id":2968,"nodeType":"StructuredDocumentation","src":"1393:319:17","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation.\n See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`.\n - If `data` is empty, `msg.value` must be zero."},"functionSelector":"9623609d","id":2991,"implemented":true,"kind":"function","modifiers":[{"id":2978,"kind":"modifierInvocation","modifierName":{"id":2977,"name":"onlyOwner","nameLocations":["1873:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":1630,"src":"1873:9:17"},"nodeType":"ModifierInvocation","src":"1873:9:17"}],"name":"upgradeAndCall","nameLocation":"1726:14:17","nodeType":"FunctionDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2971,"mutability":"mutable","name":"proxy","nameLocation":"1779:5:17","nodeType":"VariableDeclaration","scope":2991,"src":"1750:34:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$3014","typeString":"contract ITransparentUpgradeableProxy"},"typeName":{"id":2970,"nodeType":"UserDefinedTypeName","pathNode":{"id":2969,"name":"ITransparentUpgradeableProxy","nameLocations":["1750:28:17"],"nodeType":"IdentifierPath","referencedDeclaration":3014,"src":"1750:28:17"},"referencedDeclaration":3014,"src":"1750:28:17","typeDescriptions":{"typeIdentifier":"t_contract$_ITransparentUpgradeableProxy_$3014","typeString":"contract ITransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":2973,"mutability":"mutable","name":"implementation","nameLocation":"1802:14:17","nodeType":"VariableDeclaration","scope":2991,"src":"1794:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2972,"name":"address","nodeType":"ElementaryTypeName","src":"1794:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2975,"mutability":"mutable","name":"data","nameLocation":"1839:4:17","nodeType":"VariableDeclaration","scope":2991,"src":"1826:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2974,"name":"bytes","nodeType":"ElementaryTypeName","src":"1826:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1740:109:17"},"returnParameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"1883:0:17"},"scope":2992,"src":"1717:245:17","stateMutability":"payable","virtual":true,"visibility":"public"}],"scope":2993,"src":"502:1462:17","usedErrors":[1585,1590],"usedEvents":[1596]}],"src":"116:1849:17"},"id":17},"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","exportedSymbols":{"ERC1967Proxy":[2604],"ERC1967Utils":[2898],"IERC1967":[2556],"ITransparentUpgradeableProxy":[3014],"ProxyAdmin":[2992],"TransparentUpgradeableProxy":[3128]},"id":3129,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2994,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"133:24:18"},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"../ERC1967/ERC1967Utils.sol","id":2996,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":2899,"src":"159:57:18","symbolAliases":[{"foreign":{"id":2995,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"167:12:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","id":2998,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":2605,"src":"217:57:18","symbolAliases":[{"foreign":{"id":2997,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2604,"src":"225:12:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1967.sol","file":"../../interfaces/IERC1967.sol","id":3000,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":2557,"src":"275:55:18","symbolAliases":[{"foreign":{"id":2999,"name":"IERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"283:8:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol","file":"./ProxyAdmin.sol","id":3002,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3129,"sourceUnit":2993,"src":"331:44:18","symbolAliases":[{"foreign":{"id":3001,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"339:10:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3004,"name":"IERC1967","nameLocations":["865:8:18"],"nodeType":"IdentifierPath","referencedDeclaration":2556,"src":"865:8:18"},"id":3005,"nodeType":"InheritanceSpecifier","src":"865:8:18"}],"canonicalName":"ITransparentUpgradeableProxy","contractDependencies":[],"contractKind":"interface","documentation":{"id":3003,"nodeType":"StructuredDocumentation","src":"377:445:18","text":" @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}\n does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch\n mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not\n include them in the ABI so this interface must be used to interact with it."},"fullyImplemented":false,"id":3014,"linearizedBaseContracts":[3014,2556],"name":"ITransparentUpgradeableProxy","nameLocation":"833:28:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3006,"nodeType":"StructuredDocumentation","src":"880:47:18","text":"@dev See {UUPSUpgradeable-upgradeToAndCall}"},"functionSelector":"4f1ef286","id":3013,"implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"941:16:18","nodeType":"FunctionDefinition","parameters":{"id":3011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3008,"mutability":"mutable","name":"newImplementation","nameLocation":"966:17:18","nodeType":"VariableDeclaration","scope":3013,"src":"958:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3007,"name":"address","nodeType":"ElementaryTypeName","src":"958:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3010,"mutability":"mutable","name":"data","nameLocation":"1000:4:18","nodeType":"VariableDeclaration","scope":3013,"src":"985:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3009,"name":"bytes","nodeType":"ElementaryTypeName","src":"985:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"957:48:18"},"returnParameters":{"id":3012,"nodeType":"ParameterList","parameters":[],"src":"1022:0:18"},"scope":3014,"src":"932:91:18","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":3129,"src":"823:202:18","usedErrors":[],"usedEvents":[2543,2550,2555]},{"abstract":false,"baseContracts":[{"baseName":{"id":3016,"name":"ERC1967Proxy","nameLocations":["4354:12:18"],"nodeType":"IdentifierPath","referencedDeclaration":2604,"src":"4354:12:18"},"id":3017,"nodeType":"InheritanceSpecifier","src":"4354:12:18"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[2992],"contractKind":"contract","documentation":{"id":3015,"nodeType":"StructuredDocumentation","src":"1027:3286:18","text":" @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.\n 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to\n the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating\n the proxy admin cannot fallback to the target implementation.\n These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a\n dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to\n call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and\n allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative\n interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.\n NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not\n inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch\n mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to\n fully implement transparency without decoding reverts caused by selector clashes between the proxy and the\n implementation.\n NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a\n meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.\n IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an\n immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be\n overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an\n undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot\n is generally fine if the implementation is trusted.\n WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the\n compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new\n function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This\n could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency."},"fullyImplemented":true,"id":3128,"linearizedBaseContracts":[3128,2604,2934],"name":"TransparentUpgradeableProxy","nameLocation":"4323:27:18","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3019,"mutability":"immutable","name":"_admin","nameLocation":"4734:6:18","nodeType":"VariableDeclaration","scope":3128,"src":"4708:32:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3018,"name":"address","nodeType":"ElementaryTypeName","src":"4708:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"documentation":{"id":3020,"nodeType":"StructuredDocumentation","src":"4747:102:18","text":" @dev The proxy caller is the current admin, and can't fallback to the proxy target."},"errorSelector":"d2b576ec","id":3022,"name":"ProxyDeniedAdminAccess","nameLocation":"4860:22:18","nodeType":"ErrorDefinition","parameters":{"id":3021,"nodeType":"ParameterList","parameters":[],"src":"4882:2:18"},"src":"4854:31:18"},{"body":{"id":3054,"nodeType":"Block","src":"5263:190:18","statements":[{"expression":{"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3036,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"5273:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3042,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3027,"src":"5305:12:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5290:14:18","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ProxyAdmin_$2992_$","typeString":"function (address) returns (contract ProxyAdmin)"},"typeName":{"id":3040,"nodeType":"UserDefinedTypeName","pathNode":{"id":3039,"name":"ProxyAdmin","nameLocations":["5294:10:18"],"nodeType":"IdentifierPath","referencedDeclaration":2992,"src":"5294:10:18"},"referencedDeclaration":2992,"src":"5294:10:18","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$2992","typeString":"contract ProxyAdmin"}}},"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5290:28:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$2992","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$2992","typeString":"contract ProxyAdmin"}],"id":3038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3037,"name":"address","nodeType":"ElementaryTypeName","src":"5282:7:18","typeDescriptions":{}}},"id":3044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5273:46:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3046,"nodeType":"ExpressionStatement","src":"5273:46:18"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3050,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"5432:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5432:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3047,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"5407:12:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$2898_$","typeString":"type(library ERC1967Utils)"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5420:11:18","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":2780,"src":"5407:24:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5407:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3053,"nodeType":"ExpressionStatement","src":"5407:39:18"}]},"documentation":{"id":3023,"nodeType":"StructuredDocumentation","src":"4891:261:18","text":" @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`,\n backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in\n {ERC1967Proxy-constructor}."},"id":3055,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3032,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3025,"src":"5248:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3033,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"5256:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3034,"kind":"baseConstructorSpecifier","modifierName":{"id":3031,"name":"ERC1967Proxy","nameLocations":["5235:12:18"],"nodeType":"IdentifierPath","referencedDeclaration":2604,"src":"5235:12:18"},"nodeType":"ModifierInvocation","src":"5235:27:18"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3025,"mutability":"mutable","name":"_logic","nameLocation":"5177:6:18","nodeType":"VariableDeclaration","scope":3055,"src":"5169:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3024,"name":"address","nodeType":"ElementaryTypeName","src":"5169:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3027,"mutability":"mutable","name":"initialOwner","nameLocation":"5193:12:18","nodeType":"VariableDeclaration","scope":3055,"src":"5185:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3026,"name":"address","nodeType":"ElementaryTypeName","src":"5185:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3029,"mutability":"mutable","name":"_data","nameLocation":"5220:5:18","nodeType":"VariableDeclaration","scope":3055,"src":"5207:18:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3028,"name":"bytes","nodeType":"ElementaryTypeName","src":"5207:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:58:18"},"returnParameters":{"id":3035,"nodeType":"ParameterList","parameters":[],"src":"5263:0:18"},"scope":3128,"src":"5157:296:18","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":3063,"nodeType":"Block","src":"5583:30:18","statements":[{"expression":{"id":3061,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3019,"src":"5600:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3060,"id":3062,"nodeType":"Return","src":"5593:13:18"}]},"documentation":{"id":3056,"nodeType":"StructuredDocumentation","src":"5459:56:18","text":" @dev Returns the admin of this proxy."},"id":3064,"implemented":true,"kind":"function","modifiers":[],"name":"_proxyAdmin","nameLocation":"5529:11:18","nodeType":"FunctionDefinition","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[],"src":"5540:2:18"},"returnParameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3064,"src":"5574:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3058,"name":"address","nodeType":"ElementaryTypeName","src":"5574:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5573:9:18"},"scope":3128,"src":"5520:93:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[2925],"body":{"id":3097,"nodeType":"Block","src":"5802:322:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3069,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5816:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5820:6:18","memberName":"sender","nodeType":"MemberAccess","src":"5816:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3071,"name":"_proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"5830:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5816:27:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3095,"nodeType":"Block","src":"6076:42:18","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3090,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6090:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$3128_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":3092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6096:9:18","memberName":"_fallback","nodeType":"MemberAccess","referencedDeclaration":2925,"src":"6090:15:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6090:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3094,"nodeType":"ExpressionStatement","src":"6090:17:18"}]},"id":3096,"nodeType":"IfStatement","src":"5812:306:18","trueBody":{"id":3089,"nodeType":"Block","src":"5845:225:18","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3074,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5863:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5867:3:18","memberName":"sig","nodeType":"MemberAccess","src":"5863:7:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":3076,"name":"ITransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"5874:28:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITransparentUpgradeableProxy_$3014_$","typeString":"type(contract ITransparentUpgradeableProxy)"}},"id":3077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5903:16:18","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":3013,"src":"5874:45:18","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ITransparentUpgradeableProxy.upgradeToAndCall(address,bytes calldata) payable"}},"id":3078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5920:8:18","memberName":"selector","nodeType":"MemberAccess","src":"5874:54:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5863:65:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3087,"nodeType":"Block","src":"6000:60:18","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3084,"name":"_dispatchUpgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3127,"src":"6018:25:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3086,"nodeType":"ExpressionStatement","src":"6018:27:18"}]},"id":3088,"nodeType":"IfStatement","src":"5859:201:18","trueBody":{"id":3083,"nodeType":"Block","src":"5930:64:18","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3080,"name":"ProxyDeniedAdminAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"5955:22:18","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5955:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3082,"nodeType":"RevertStatement","src":"5948:31:18"}]}}]}}]},"documentation":{"id":3065,"nodeType":"StructuredDocumentation","src":"5619:131:18","text":" @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior."},"id":3098,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"5764:9:18","nodeType":"FunctionDefinition","overrides":{"id":3067,"nodeType":"OverrideSpecifier","overrides":[],"src":"5793:8:18"},"parameters":{"id":3066,"nodeType":"ParameterList","parameters":[],"src":"5773:2:18"},"returnParameters":{"id":3068,"nodeType":"ParameterList","parameters":[],"src":"5802:0:18"},"scope":3128,"src":"5755:369:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3126,"nodeType":"Block","src":"6371:172:18","statements":[{"assignments":[3103,3105],"declarations":[{"constant":false,"id":3103,"mutability":"mutable","name":"newImplementation","nameLocation":"6390:17:18","nodeType":"VariableDeclaration","scope":3126,"src":"6382:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3102,"name":"address","nodeType":"ElementaryTypeName","src":"6382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3105,"mutability":"mutable","name":"data","nameLocation":"6422:4:18","nodeType":"VariableDeclaration","scope":3126,"src":"6409:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3104,"name":"bytes","nodeType":"ElementaryTypeName","src":"6409:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3118,"initialValue":{"arguments":[{"baseExpression":{"expression":{"id":3108,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6441:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6445:4:18","memberName":"data","nodeType":"MemberAccess","src":"6441:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6441:12:18","startExpression":{"hexValue":"34","id":3110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6450:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},{"components":[{"id":3113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6456:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3112,"name":"address","nodeType":"ElementaryTypeName","src":"6456:7:18","typeDescriptions":{}}},{"id":3115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6465:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3114,"name":"bytes","nodeType":"ElementaryTypeName","src":"6465:5:18","typeDescriptions":{}}}],"id":3116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6455:16:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":3106,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6430:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6434:6:18","memberName":"decode","nodeType":"MemberAccess","src":"6430:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6381:91:18"},{"expression":{"arguments":[{"id":3122,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3103,"src":"6512:17:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3123,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"6531:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3119,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2898,"src":"6482:12:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$2898_$","typeString":"type(library ERC1967Utils)"}},"id":3121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6495:16:18","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":2713,"src":"6482:29:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":3124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:54:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3125,"nodeType":"ExpressionStatement","src":"6482:54:18"}]},"documentation":{"id":3099,"nodeType":"StructuredDocumentation","src":"6130:191:18","text":" @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"id":3127,"implemented":true,"kind":"function","modifiers":[],"name":"_dispatchUpgradeToAndCall","nameLocation":"6335:25:18","nodeType":"FunctionDefinition","parameters":{"id":3100,"nodeType":"ParameterList","parameters":[],"src":"6360:2:18"},"returnParameters":{"id":3101,"nodeType":"ParameterList","parameters":[],"src":"6371:0:18"},"scope":3128,"src":"6326:217:18","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":3129,"src":"4314:2231:18","usedErrors":[2624,2629,2637,3022,3138,3430],"usedEvents":[2543,2550]}],"src":"133:6413:18"},"id":18},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[3387],"Errors":[3439]},"id":3388,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3130,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:19"},{"absolutePath":"@openzeppelin/contracts/utils/Errors.sol","file":"./Errors.sol","id":3132,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3388,"sourceUnit":3440,"src":"127:36:19","symbolAliases":[{"foreign":{"id":3131,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"135:6:19","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":3133,"nodeType":"StructuredDocumentation","src":"165:67:19","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":3387,"linearizedBaseContracts":[3387],"name":"Address","nameLocation":"241:7:19","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3134,"nodeType":"StructuredDocumentation","src":"255:75:19","text":" @dev There's no code at `target` (it is not a contract)."},"errorSelector":"9996b315","id":3138,"name":"AddressEmptyCode","nameLocation":"341:16:19","nodeType":"ErrorDefinition","parameters":{"id":3137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3136,"mutability":"mutable","name":"target","nameLocation":"366:6:19","nodeType":"VariableDeclaration","scope":3138,"src":"358:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3135,"name":"address","nodeType":"ElementaryTypeName","src":"358:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"357:16:19"},"src":"335:39:19"},{"body":{"id":3184,"nodeType":"Block","src":"1361:278:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3148,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1383:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}],"id":3147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1375:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3146,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:19","typeDescriptions":{}}},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1375:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:7:19","memberName":"balance","nodeType":"MemberAccess","src":"1375:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3151,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"1399:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1375:30:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3165,"nodeType":"IfStatement","src":"1371:125:19","trueBody":{"id":3164,"nodeType":"Block","src":"1407:89:19","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":3158,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1463:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}],"id":3157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1455:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3156,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:19","typeDescriptions":{}}},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1469:7:19","memberName":"balance","nodeType":"MemberAccess","src":"1455:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3161,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"1478:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3153,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"1428:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$3439_$","typeString":"type(library Errors)"}},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1435:19:19","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":3427,"src":"1428:26:19","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1428:57:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3163,"nodeType":"RevertStatement","src":"1421:64:19"}]}},{"assignments":[3167,null],"declarations":[{"constant":false,"id":3167,"mutability":"mutable","name":"success","nameLocation":"1512:7:19","nodeType":"VariableDeclaration","scope":3184,"src":"1507:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3166,"name":"bool","nodeType":"ElementaryTypeName","src":"1507:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3174,"initialValue":{"arguments":[{"hexValue":"","id":3172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1555:2:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":3168,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3141,"src":"1525:9:19","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:4:19","memberName":"call","nodeType":"MemberAccess","src":"1525:14:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3170,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3143,"src":"1547:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1525:29:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1525:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1506:52:19"},{"condition":{"id":3176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1572:8:19","subExpression":{"id":3175,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3167,"src":"1573:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3183,"nodeType":"IfStatement","src":"1568:65:19","trueBody":{"id":3182,"nodeType":"Block","src":"1582:51:19","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3177,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"1603:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$3439_$","typeString":"type(library Errors)"}},"id":3179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1610:10:19","memberName":"FailedCall","nodeType":"MemberAccess","referencedDeclaration":3430,"src":"1603:17:19","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3181,"nodeType":"RevertStatement","src":"1596:26:19"}]}}]},"documentation":{"id":3139,"nodeType":"StructuredDocumentation","src":"380:905:19","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":3185,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"1299:9:19","nodeType":"FunctionDefinition","parameters":{"id":3144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3141,"mutability":"mutable","name":"recipient","nameLocation":"1325:9:19","nodeType":"VariableDeclaration","scope":3185,"src":"1309:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3140,"name":"address","nodeType":"ElementaryTypeName","src":"1309:15:19","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":3143,"mutability":"mutable","name":"amount","nameLocation":"1344:6:19","nodeType":"VariableDeclaration","scope":3185,"src":"1336:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3142,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1308:43:19"},"returnParameters":{"id":3145,"nodeType":"ParameterList","parameters":[],"src":"1361:0:19"},"scope":3387,"src":"1290:349:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3201,"nodeType":"Block","src":"2573:62:19","statements":[{"expression":{"arguments":[{"id":3196,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3188,"src":"2612:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3197,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"2620:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":3198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2626:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3195,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3252,"src":"2590:21:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) returns (bytes memory)"}},"id":3199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2590:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3194,"id":3200,"nodeType":"Return","src":"2583:45:19"}]},"documentation":{"id":3186,"nodeType":"StructuredDocumentation","src":"1645:834:19","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {Errors.FailedCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert."},"id":3202,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"2493:12:19","nodeType":"FunctionDefinition","parameters":{"id":3191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3188,"mutability":"mutable","name":"target","nameLocation":"2514:6:19","nodeType":"VariableDeclaration","scope":3202,"src":"2506:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3187,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3190,"mutability":"mutable","name":"data","nameLocation":"2535:4:19","nodeType":"VariableDeclaration","scope":3202,"src":"2522:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3189,"name":"bytes","nodeType":"ElementaryTypeName","src":"2522:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2505:35:19"},"returnParameters":{"id":3194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3202,"src":"2559:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3192,"name":"bytes","nodeType":"ElementaryTypeName","src":"2559:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2558:14:19"},"scope":3387,"src":"2484:151:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3251,"nodeType":"Block","src":"3072:294:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3216,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3094:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}],"id":3215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3086:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3214,"name":"address","nodeType":"ElementaryTypeName","src":"3086:7:19","typeDescriptions":{}}},"id":3217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3086:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3100:7:19","memberName":"balance","nodeType":"MemberAccess","src":"3086:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"3110:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3086:29:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3233,"nodeType":"IfStatement","src":"3082:123:19","trueBody":{"id":3232,"nodeType":"Block","src":"3117:88:19","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":3226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3173:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$3387","typeString":"library Address"}],"id":3225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3165:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3224,"name":"address","nodeType":"ElementaryTypeName","src":"3165:7:19","typeDescriptions":{}}},"id":3227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3165:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3179:7:19","memberName":"balance","nodeType":"MemberAccess","src":"3165:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3229,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"3188:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3221,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"3138:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$3439_$","typeString":"type(library Errors)"}},"id":3223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3145:19:19","memberName":"InsufficientBalance","nodeType":"MemberAccess","referencedDeclaration":3427,"src":"3138:26:19","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3138:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3231,"nodeType":"RevertStatement","src":"3131:63:19"}]}},{"assignments":[3235,3237],"declarations":[{"constant":false,"id":3235,"mutability":"mutable","name":"success","nameLocation":"3220:7:19","nodeType":"VariableDeclaration","scope":3251,"src":"3215:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3234,"name":"bool","nodeType":"ElementaryTypeName","src":"3215:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3237,"mutability":"mutable","name":"returndata","nameLocation":"3242:10:19","nodeType":"VariableDeclaration","scope":3251,"src":"3229:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3236,"name":"bytes","nodeType":"ElementaryTypeName","src":"3229:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3244,"initialValue":{"arguments":[{"id":3242,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"3282:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3238,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"3256:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3263:4:19","memberName":"call","nodeType":"MemberAccess","src":"3256:11:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3240,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3209,"src":"3275:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3256:25:19","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3256:31:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3214:73:19"},{"expression":{"arguments":[{"id":3246,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3205,"src":"3331:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3247,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3235,"src":"3339:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3248,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"3348:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3245,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"3304:26:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3304:55:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3213,"id":3250,"nodeType":"Return","src":"3297:62:19"}]},"documentation":{"id":3203,"nodeType":"StructuredDocumentation","src":"2641:313:19","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`."},"id":3252,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"2968:21:19","nodeType":"FunctionDefinition","parameters":{"id":3210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3205,"mutability":"mutable","name":"target","nameLocation":"2998:6:19","nodeType":"VariableDeclaration","scope":3252,"src":"2990:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3204,"name":"address","nodeType":"ElementaryTypeName","src":"2990:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3207,"mutability":"mutable","name":"data","nameLocation":"3019:4:19","nodeType":"VariableDeclaration","scope":3252,"src":"3006:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3206,"name":"bytes","nodeType":"ElementaryTypeName","src":"3006:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3209,"mutability":"mutable","name":"value","nameLocation":"3033:5:19","nodeType":"VariableDeclaration","scope":3252,"src":"3025:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3208,"name":"uint256","nodeType":"ElementaryTypeName","src":"3025:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2989:50:19"},"returnParameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3252,"src":"3058:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3211,"name":"bytes","nodeType":"ElementaryTypeName","src":"3058:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3057:14:19"},"scope":3387,"src":"2959:407:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3277,"nodeType":"Block","src":"3605:154:19","statements":[{"assignments":[3263,3265],"declarations":[{"constant":false,"id":3263,"mutability":"mutable","name":"success","nameLocation":"3621:7:19","nodeType":"VariableDeclaration","scope":3277,"src":"3616:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3262,"name":"bool","nodeType":"ElementaryTypeName","src":"3616:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3265,"mutability":"mutable","name":"returndata","nameLocation":"3643:10:19","nodeType":"VariableDeclaration","scope":3277,"src":"3630:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3264,"name":"bytes","nodeType":"ElementaryTypeName","src":"3630:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3270,"initialValue":{"arguments":[{"id":3268,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3257,"src":"3675:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3266,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"3657:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3664:10:19","memberName":"staticcall","nodeType":"MemberAccess","src":"3657:17:19","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:23:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3615:65:19"},{"expression":{"arguments":[{"id":3272,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"3724:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3273,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"3732:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3274,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3265,"src":"3741:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3271,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"3697:26:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3697:55:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3261,"id":3276,"nodeType":"Return","src":"3690:62:19"}]},"documentation":{"id":3253,"nodeType":"StructuredDocumentation","src":"3372:128:19","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call."},"id":3278,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"3514:18:19","nodeType":"FunctionDefinition","parameters":{"id":3258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3255,"mutability":"mutable","name":"target","nameLocation":"3541:6:19","nodeType":"VariableDeclaration","scope":3278,"src":"3533:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3254,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3257,"mutability":"mutable","name":"data","nameLocation":"3562:4:19","nodeType":"VariableDeclaration","scope":3278,"src":"3549:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3256,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:35:19"},"returnParameters":{"id":3261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3278,"src":"3591:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3259,"name":"bytes","nodeType":"ElementaryTypeName","src":"3591:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:14:19"},"scope":3387,"src":"3505:254:19","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3303,"nodeType":"Block","src":"3997:156:19","statements":[{"assignments":[3289,3291],"declarations":[{"constant":false,"id":3289,"mutability":"mutable","name":"success","nameLocation":"4013:7:19","nodeType":"VariableDeclaration","scope":3303,"src":"4008:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3288,"name":"bool","nodeType":"ElementaryTypeName","src":"4008:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3291,"mutability":"mutable","name":"returndata","nameLocation":"4035:10:19","nodeType":"VariableDeclaration","scope":3303,"src":"4022:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3290,"name":"bytes","nodeType":"ElementaryTypeName","src":"4022:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3296,"initialValue":{"arguments":[{"id":3294,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3283,"src":"4069:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3292,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3281,"src":"4049:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4056:12:19","memberName":"delegatecall","nodeType":"MemberAccess","src":"4049:19:19","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4007:67:19"},{"expression":{"arguments":[{"id":3298,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3281,"src":"4118:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3299,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3289,"src":"4126:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3300,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3291,"src":"4135:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3297,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"4091:26:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory) view returns (bytes memory)"}},"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4091:55:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3287,"id":3302,"nodeType":"Return","src":"4084:62:19"}]},"documentation":{"id":3279,"nodeType":"StructuredDocumentation","src":"3765:130:19","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call."},"id":3304,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"3909:20:19","nodeType":"FunctionDefinition","parameters":{"id":3284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3281,"mutability":"mutable","name":"target","nameLocation":"3938:6:19","nodeType":"VariableDeclaration","scope":3304,"src":"3930:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3280,"name":"address","nodeType":"ElementaryTypeName","src":"3930:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3283,"mutability":"mutable","name":"data","nameLocation":"3959:4:19","nodeType":"VariableDeclaration","scope":3304,"src":"3946:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3282,"name":"bytes","nodeType":"ElementaryTypeName","src":"3946:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3929:35:19"},"returnParameters":{"id":3287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3304,"src":"3983:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3285,"name":"bytes","nodeType":"ElementaryTypeName","src":"3983:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3982:14:19"},"scope":3387,"src":"3900:253:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3343,"nodeType":"Block","src":"4579:424:19","statements":[{"condition":{"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4593:8:19","subExpression":{"id":3316,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3309,"src":"4594:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3341,"nodeType":"Block","src":"4653:344:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3323,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"4841:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4852:6:19","memberName":"length","nodeType":"MemberAccess","src":"4841:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4862:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4841:22:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3327,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3307,"src":"4867:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4874:4:19","memberName":"code","nodeType":"MemberAccess","src":"4867:11:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4879:6:19","memberName":"length","nodeType":"MemberAccess","src":"4867:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4867:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4841:49:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3338,"nodeType":"IfStatement","src":"4837:119:19","trueBody":{"id":3337,"nodeType":"Block","src":"4892:64:19","statements":[{"errorCall":{"arguments":[{"id":3334,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3307,"src":"4934:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3333,"name":"AddressEmptyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3138,"src":"4917:16:19","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4917:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3336,"nodeType":"RevertStatement","src":"4910:31:19"}]}},{"expression":{"id":3339,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"4976:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3315,"id":3340,"nodeType":"Return","src":"4969:17:19"}]},"id":3342,"nodeType":"IfStatement","src":"4589:408:19","trueBody":{"id":3322,"nodeType":"Block","src":"4603:44:19","statements":[{"expression":{"arguments":[{"id":3319,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"4625:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3318,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3386,"src":"4617:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":3320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3321,"nodeType":"ExpressionStatement","src":"4617:19:19"}]}}]},"documentation":{"id":3305,"nodeType":"StructuredDocumentation","src":"4159:257:19","text":" @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {Errors.FailedCall}) in case\n of an unsuccessful call."},"id":3344,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"4430:26:19","nodeType":"FunctionDefinition","parameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3307,"mutability":"mutable","name":"target","nameLocation":"4474:6:19","nodeType":"VariableDeclaration","scope":3344,"src":"4466:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3306,"name":"address","nodeType":"ElementaryTypeName","src":"4466:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3309,"mutability":"mutable","name":"success","nameLocation":"4495:7:19","nodeType":"VariableDeclaration","scope":3344,"src":"4490:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3308,"name":"bool","nodeType":"ElementaryTypeName","src":"4490:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3311,"mutability":"mutable","name":"returndata","nameLocation":"4525:10:19","nodeType":"VariableDeclaration","scope":3344,"src":"4512:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3310,"name":"bytes","nodeType":"ElementaryTypeName","src":"4512:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4456:85:19"},"returnParameters":{"id":3315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3344,"src":"4565:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3313,"name":"bytes","nodeType":"ElementaryTypeName","src":"4565:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4564:14:19"},"scope":3387,"src":"4421:582:19","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3365,"nodeType":"Block","src":"5307:122:19","statements":[{"condition":{"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5321:8:19","subExpression":{"id":3354,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"5322:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3363,"nodeType":"Block","src":"5381:42:19","statements":[{"expression":{"id":3361,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"5402:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3353,"id":3362,"nodeType":"Return","src":"5395:17:19"}]},"id":3364,"nodeType":"IfStatement","src":"5317:106:19","trueBody":{"id":3360,"nodeType":"Block","src":"5331:44:19","statements":[{"expression":{"arguments":[{"id":3357,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"5353:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3356,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3386,"src":"5345:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5345:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3359,"nodeType":"ExpressionStatement","src":"5345:19:19"}]}}]},"documentation":{"id":3345,"nodeType":"StructuredDocumentation","src":"5009:191:19","text":" @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {Errors.FailedCall} error."},"id":3366,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"5214:16:19","nodeType":"FunctionDefinition","parameters":{"id":3350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"success","nameLocation":"5236:7:19","nodeType":"VariableDeclaration","scope":3366,"src":"5231:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3346,"name":"bool","nodeType":"ElementaryTypeName","src":"5231:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3349,"mutability":"mutable","name":"returndata","nameLocation":"5258:10:19","nodeType":"VariableDeclaration","scope":3366,"src":"5245:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3348,"name":"bytes","nodeType":"ElementaryTypeName","src":"5245:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5230:39:19"},"returnParameters":{"id":3353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3366,"src":"5293:12:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3351,"name":"bytes","nodeType":"ElementaryTypeName","src":"5293:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5292:14:19"},"scope":3387,"src":"5205:224:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3385,"nodeType":"Block","src":"5598:432:19","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3372,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3369,"src":"5674:10:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5685:6:19","memberName":"length","nodeType":"MemberAccess","src":"5674:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5694:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5674:21:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3383,"nodeType":"Block","src":"5973:51:19","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3378,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"5994:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Errors_$3439_$","typeString":"type(library Errors)"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:10:19","memberName":"FailedCall","nodeType":"MemberAccess","referencedDeclaration":3430,"src":"5994:17:19","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5994:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3382,"nodeType":"RevertStatement","src":"5987:26:19"}]},"id":3384,"nodeType":"IfStatement","src":"5670:354:19","trueBody":{"id":3377,"nodeType":"Block","src":"5697:270:19","statements":[{"AST":{"nativeSrc":"5824:133:19","nodeType":"YulBlock","src":"5824:133:19","statements":[{"nativeSrc":"5842:40:19","nodeType":"YulVariableDeclaration","src":"5842:40:19","value":{"arguments":[{"name":"returndata","nativeSrc":"5871:10:19","nodeType":"YulIdentifier","src":"5871:10:19"}],"functionName":{"name":"mload","nativeSrc":"5865:5:19","nodeType":"YulIdentifier","src":"5865:5:19"},"nativeSrc":"5865:17:19","nodeType":"YulFunctionCall","src":"5865:17:19"},"variables":[{"name":"returndata_size","nativeSrc":"5846:15:19","nodeType":"YulTypedName","src":"5846:15:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5910:2:19","nodeType":"YulLiteral","src":"5910:2:19","type":"","value":"32"},{"name":"returndata","nativeSrc":"5914:10:19","nodeType":"YulIdentifier","src":"5914:10:19"}],"functionName":{"name":"add","nativeSrc":"5906:3:19","nodeType":"YulIdentifier","src":"5906:3:19"},"nativeSrc":"5906:19:19","nodeType":"YulFunctionCall","src":"5906:19:19"},{"name":"returndata_size","nativeSrc":"5927:15:19","nodeType":"YulIdentifier","src":"5927:15:19"}],"functionName":{"name":"revert","nativeSrc":"5899:6:19","nodeType":"YulIdentifier","src":"5899:6:19"},"nativeSrc":"5899:44:19","nodeType":"YulFunctionCall","src":"5899:44:19"},"nativeSrc":"5899:44:19","nodeType":"YulExpressionStatement","src":"5899:44:19"}]},"evmVersion":"paris","externalReferences":[{"declaration":3369,"isOffset":false,"isSlot":false,"src":"5871:10:19","valueSize":1},{"declaration":3369,"isOffset":false,"isSlot":false,"src":"5914:10:19","valueSize":1}],"flags":["memory-safe"],"id":3376,"nodeType":"InlineAssembly","src":"5799:158:19"}]}}]},"documentation":{"id":3367,"nodeType":"StructuredDocumentation","src":"5435:103:19","text":" @dev Reverts with returndata if present. Otherwise reverts with {Errors.FailedCall}."},"id":3386,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"5552:7:19","nodeType":"FunctionDefinition","parameters":{"id":3370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3369,"mutability":"mutable","name":"returndata","nameLocation":"5573:10:19","nodeType":"VariableDeclaration","scope":3386,"src":"5560:23:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3368,"name":"bytes","nodeType":"ElementaryTypeName","src":"5560:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5559:25:19"},"returnParameters":{"id":3371,"nodeType":"ParameterList","parameters":[],"src":"5598:0:19"},"scope":3387,"src":"5543:487:19","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":3388,"src":"233:5799:19","usedErrors":[3138],"usedEvents":[]}],"src":"101:5932:19"},"id":19},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[3417]},"id":3418,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3389,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:20"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":3390,"nodeType":"StructuredDocumentation","src":"127:496:20","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":3417,"linearizedBaseContracts":[3417],"name":"Context","nameLocation":"642:7:20","nodeType":"ContractDefinition","nodes":[{"body":{"id":3398,"nodeType":"Block","src":"718:34:20","statements":[{"expression":{"expression":{"id":3395,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:20","memberName":"sender","nodeType":"MemberAccess","src":"735:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3394,"id":3397,"nodeType":"Return","src":"728:17:20"}]},"id":3399,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:20","nodeType":"FunctionDefinition","parameters":{"id":3391,"nodeType":"ParameterList","parameters":[],"src":"675:2:20"},"returnParameters":{"id":3394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3393,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3399,"src":"709:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3392,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:20"},"scope":3417,"src":"656:96:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3407,"nodeType":"Block","src":"825:32:20","statements":[{"expression":{"expression":{"id":3404,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:20","memberName":"data","nodeType":"MemberAccess","src":"842:8:20","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":3403,"id":3406,"nodeType":"Return","src":"835:15:20"}]},"id":3408,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:20","nodeType":"FunctionDefinition","parameters":{"id":3400,"nodeType":"ParameterList","parameters":[],"src":"775:2:20"},"returnParameters":{"id":3403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3408,"src":"809:14:20","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3401,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:20"},"scope":3417,"src":"758:99:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3415,"nodeType":"Block","src":"935:25:20","statements":[{"expression":{"hexValue":"30","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3412,"id":3414,"nodeType":"Return","src":"945:8:20"}]},"id":3416,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:20","nodeType":"FunctionDefinition","parameters":{"id":3409,"nodeType":"ParameterList","parameters":[],"src":"892:2:20"},"returnParameters":{"id":3412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3416,"src":"926:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3410,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:20"},"scope":3417,"src":"863:97:20","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":3418,"src":"624:338:20","usedErrors":[],"usedEvents":[]}],"src":"101:862:20"},"id":20},"@openzeppelin/contracts/utils/Errors.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Errors.sol","exportedSymbols":{"Errors":[3439]},"id":3440,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3419,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"100:24:21"},{"abstract":false,"baseContracts":[],"canonicalName":"Errors","contractDependencies":[],"contractKind":"library","documentation":{"id":3420,"nodeType":"StructuredDocumentation","src":"126:284:21","text":" @dev Collection of common custom errors used in multiple contracts\n IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.\n It is recommended to avoid relying on the error API for critical functionality.\n _Available since v5.1._"},"fullyImplemented":true,"id":3439,"linearizedBaseContracts":[3439],"name":"Errors","nameLocation":"419:6:21","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3421,"nodeType":"StructuredDocumentation","src":"432:94:21","text":" @dev The ETH balance of the account is not enough to perform the operation."},"errorSelector":"cf479181","id":3427,"name":"InsufficientBalance","nameLocation":"537:19:21","nodeType":"ErrorDefinition","parameters":{"id":3426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3423,"mutability":"mutable","name":"balance","nameLocation":"565:7:21","nodeType":"VariableDeclaration","scope":3427,"src":"557:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3422,"name":"uint256","nodeType":"ElementaryTypeName","src":"557:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3425,"mutability":"mutable","name":"needed","nameLocation":"582:6:21","nodeType":"VariableDeclaration","scope":3427,"src":"574:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3424,"name":"uint256","nodeType":"ElementaryTypeName","src":"574:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"556:33:21"},"src":"531:59:21"},{"documentation":{"id":3428,"nodeType":"StructuredDocumentation","src":"596:89:21","text":" @dev A call to an address target failed. The target may have reverted."},"errorSelector":"d6bda275","id":3430,"name":"FailedCall","nameLocation":"696:10:21","nodeType":"ErrorDefinition","parameters":{"id":3429,"nodeType":"ParameterList","parameters":[],"src":"706:2:21"},"src":"690:19:21"},{"documentation":{"id":3431,"nodeType":"StructuredDocumentation","src":"715:46:21","text":" @dev The deployment failed."},"errorSelector":"b06ebf3d","id":3433,"name":"FailedDeployment","nameLocation":"772:16:21","nodeType":"ErrorDefinition","parameters":{"id":3432,"nodeType":"ParameterList","parameters":[],"src":"788:2:21"},"src":"766:25:21"},{"documentation":{"id":3434,"nodeType":"StructuredDocumentation","src":"797:58:21","text":" @dev A necessary precompile is missing."},"errorSelector":"42b01bce","id":3438,"name":"MissingPrecompile","nameLocation":"866:17:21","nodeType":"ErrorDefinition","parameters":{"id":3437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3436,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3438,"src":"884:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3435,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"883:9:21"},"src":"860:33:21"}],"scope":3440,"src":"411:484:21","usedErrors":[3427,3430,3433,3438],"usedEvents":[]}],"src":"100:796:21"},"id":21},"@openzeppelin/contracts/utils/Panic.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","exportedSymbols":{"Panic":[3491]},"id":3492,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3441,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"99:24:22"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":3442,"nodeType":"StructuredDocumentation","src":"125:489:22","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n      using Panic for uint256;\n      // Use any of the declared internal constants\n      function foo() { Panic.GENERIC.panic(); }\n      // Alternatively\n      function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._"},"fullyImplemented":true,"id":3491,"linearizedBaseContracts":[3491],"name":"Panic","nameLocation":"665:5:22","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":3443,"nodeType":"StructuredDocumentation","src":"677:36:22","text":"@dev generic / unspecified error"},"id":3446,"mutability":"constant","name":"GENERIC","nameLocation":"744:7:22","nodeType":"VariableDeclaration","scope":3491,"src":"718:40:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3444,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":3445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"754:4:22","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":3447,"nodeType":"StructuredDocumentation","src":"764:37:22","text":"@dev used by the assert() builtin"},"id":3450,"mutability":"constant","name":"ASSERT","nameLocation":"832:6:22","nodeType":"VariableDeclaration","scope":3491,"src":"806:39:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3448,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":3449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"841:4:22","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":3451,"nodeType":"StructuredDocumentation","src":"851:41:22","text":"@dev arithmetic underflow or overflow"},"id":3454,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"923:14:22","nodeType":"VariableDeclaration","scope":3491,"src":"897:47:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3452,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":3453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"940:4:22","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":3455,"nodeType":"StructuredDocumentation","src":"950:35:22","text":"@dev division or modulo by zero"},"id":3458,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"1016:16:22","nodeType":"VariableDeclaration","scope":3491,"src":"990:49:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3456,"name":"uint256","nodeType":"ElementaryTypeName","src":"990:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":3457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1035:4:22","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":3459,"nodeType":"StructuredDocumentation","src":"1045:30:22","text":"@dev enum conversion error"},"id":3462,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1106:21:22","nodeType":"VariableDeclaration","scope":3491,"src":"1080:54:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3460,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":3461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1130:4:22","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":3463,"nodeType":"StructuredDocumentation","src":"1140:36:22","text":"@dev invalid encoding in storage"},"id":3466,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1207:22:22","nodeType":"VariableDeclaration","scope":3491,"src":"1181:55:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3464,"name":"uint256","nodeType":"ElementaryTypeName","src":"1181:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":3465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:4:22","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":3467,"nodeType":"StructuredDocumentation","src":"1242:24:22","text":"@dev empty array pop"},"id":3470,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1297:15:22","nodeType":"VariableDeclaration","scope":3491,"src":"1271:48:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3468,"name":"uint256","nodeType":"ElementaryTypeName","src":"1271:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":3469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1315:4:22","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":3471,"nodeType":"StructuredDocumentation","src":"1325:35:22","text":"@dev array out of bounds access"},"id":3474,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1391:19:22","nodeType":"VariableDeclaration","scope":3491,"src":"1365:52:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1365:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":3473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1413:4:22","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":3475,"nodeType":"StructuredDocumentation","src":"1423:65:22","text":"@dev resource error (too large allocation or too large array)"},"id":3478,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1519:14:22","nodeType":"VariableDeclaration","scope":3491,"src":"1493:47:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3476,"name":"uint256","nodeType":"ElementaryTypeName","src":"1493:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":3477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1536:4:22","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":3479,"nodeType":"StructuredDocumentation","src":"1546:42:22","text":"@dev calling invalid internal function"},"id":3482,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1619:25:22","nodeType":"VariableDeclaration","scope":3491,"src":"1593:58:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3480,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1647:4:22","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":3489,"nodeType":"Block","src":"1819:151:22","statements":[{"AST":{"nativeSrc":"1854:110:22","nodeType":"YulBlock","src":"1854:110:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1875:4:22","nodeType":"YulLiteral","src":"1875:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1881:10:22","nodeType":"YulLiteral","src":"1881:10:22","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1868:6:22","nodeType":"YulIdentifier","src":"1868:6:22"},"nativeSrc":"1868:24:22","nodeType":"YulFunctionCall","src":"1868:24:22"},"nativeSrc":"1868:24:22","nodeType":"YulExpressionStatement","src":"1868:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:4:22","nodeType":"YulLiteral","src":"1912:4:22","type":"","value":"0x20"},{"name":"code","nativeSrc":"1918:4:22","nodeType":"YulIdentifier","src":"1918:4:22"}],"functionName":{"name":"mstore","nativeSrc":"1905:6:22","nodeType":"YulIdentifier","src":"1905:6:22"},"nativeSrc":"1905:18:22","nodeType":"YulFunctionCall","src":"1905:18:22"},"nativeSrc":"1905:18:22","nodeType":"YulExpressionStatement","src":"1905:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1943:4:22","nodeType":"YulLiteral","src":"1943:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1949:4:22","nodeType":"YulLiteral","src":"1949:4:22","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1936:6:22","nodeType":"YulIdentifier","src":"1936:6:22"},"nativeSrc":"1936:18:22","nodeType":"YulFunctionCall","src":"1936:18:22"},"nativeSrc":"1936:18:22","nodeType":"YulExpressionStatement","src":"1936:18:22"}]},"evmVersion":"paris","externalReferences":[{"declaration":3485,"isOffset":false,"isSlot":false,"src":"1918:4:22","valueSize":1}],"flags":["memory-safe"],"id":3488,"nodeType":"InlineAssembly","src":"1829:135:22"}]},"documentation":{"id":3483,"nodeType":"StructuredDocumentation","src":"1658:113:22","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":3490,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1785:5:22","nodeType":"FunctionDefinition","parameters":{"id":3486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3485,"mutability":"mutable","name":"code","nameLocation":"1799:4:22","nodeType":"VariableDeclaration","scope":3490,"src":"1791:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3484,"name":"uint256","nodeType":"ElementaryTypeName","src":"1791:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1790:14:22"},"returnParameters":{"id":3487,"nodeType":"ParameterList","parameters":[],"src":"1819:0:22"},"scope":3491,"src":"1776:194:22","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3492,"src":"657:1315:22","usedErrors":[],"usedEvents":[]}],"src":"99:1874:22"},"id":22},"@openzeppelin/contracts/utils/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Pausable.sol","exportedSymbols":{"Context":[3417],"Pausable":[3608]},"id":3609,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3493,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"102:24:23"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":3495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3609,"sourceUnit":3418,"src":"128:45:23","symbolAliases":[{"foreign":{"id":3494,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"136:7:23","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3497,"name":"Context","nameLocations":["645:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":3417,"src":"645:7:23"},"id":3498,"nodeType":"InheritanceSpecifier","src":"645:7:23"}],"canonicalName":"Pausable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3496,"nodeType":"StructuredDocumentation","src":"175:439:23","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":3608,"linearizedBaseContracts":[3608,3417],"name":"Pausable","nameLocation":"633:8:23","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3500,"mutability":"mutable","name":"_paused","nameLocation":"672:7:23","nodeType":"VariableDeclaration","scope":3608,"src":"659:20:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3499,"name":"bool","nodeType":"ElementaryTypeName","src":"659:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":3501,"nodeType":"StructuredDocumentation","src":"686:73:23","text":" @dev Emitted when the pause is triggered by `account`."},"eventSelector":"62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258","id":3505,"name":"Paused","nameLocation":"770:6:23","nodeType":"EventDefinition","parameters":{"id":3504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3503,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"785:7:23","nodeType":"VariableDeclaration","scope":3505,"src":"777:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3502,"name":"address","nodeType":"ElementaryTypeName","src":"777:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"776:17:23"},"src":"764:30:23"},{"anonymous":false,"documentation":{"id":3506,"nodeType":"StructuredDocumentation","src":"800:70:23","text":" @dev Emitted when the pause is lifted by `account`."},"eventSelector":"5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa","id":3510,"name":"Unpaused","nameLocation":"881:8:23","nodeType":"EventDefinition","parameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3508,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"898:7:23","nodeType":"VariableDeclaration","scope":3510,"src":"890:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3507,"name":"address","nodeType":"ElementaryTypeName","src":"890:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"889:17:23"},"src":"875:32:23"},{"documentation":{"id":3511,"nodeType":"StructuredDocumentation","src":"913:76:23","text":" @dev The operation failed because the contract is paused."},"errorSelector":"d93c0665","id":3513,"name":"EnforcedPause","nameLocation":"1000:13:23","nodeType":"ErrorDefinition","parameters":{"id":3512,"nodeType":"ParameterList","parameters":[],"src":"1013:2:23"},"src":"994:22:23"},{"documentation":{"id":3514,"nodeType":"StructuredDocumentation","src":"1022:80:23","text":" @dev The operation failed because the contract is not paused."},"errorSelector":"8dfc202b","id":3516,"name":"ExpectedPause","nameLocation":"1113:13:23","nodeType":"ErrorDefinition","parameters":{"id":3515,"nodeType":"ParameterList","parameters":[],"src":"1126:2:23"},"src":"1107:22:23"},{"body":{"id":3524,"nodeType":"Block","src":"1221:32:23","statements":[{"expression":{"id":3522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3520,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"1231:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1241:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1231:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3523,"nodeType":"ExpressionStatement","src":"1231:15:23"}]},"documentation":{"id":3517,"nodeType":"StructuredDocumentation","src":"1135:67:23","text":" @dev Initializes the contract in unpaused state."},"id":3525,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3518,"nodeType":"ParameterList","parameters":[],"src":"1218:2:23"},"returnParameters":{"id":3519,"nodeType":"ParameterList","parameters":[],"src":"1221:0:23"},"scope":3608,"src":"1207:46:23","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3532,"nodeType":"Block","src":"1464:47:23","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3528,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3562,"src":"1474:17:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1474:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3530,"nodeType":"ExpressionStatement","src":"1474:19:23"},{"id":3531,"nodeType":"PlaceholderStatement","src":"1503:1:23"}]},"documentation":{"id":3526,"nodeType":"StructuredDocumentation","src":"1259:175:23","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":3533,"name":"whenNotPaused","nameLocation":"1448:13:23","nodeType":"ModifierDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[],"src":"1461:2:23"},"src":"1439:72:23","virtual":false,"visibility":"internal"},{"body":{"id":3540,"nodeType":"Block","src":"1711:44:23","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3536,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3575,"src":"1721:14:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1721:16:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3538,"nodeType":"ExpressionStatement","src":"1721:16:23"},{"id":3539,"nodeType":"PlaceholderStatement","src":"1747:1:23"}]},"documentation":{"id":3534,"nodeType":"StructuredDocumentation","src":"1517:167:23","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":3541,"name":"whenPaused","nameLocation":"1698:10:23","nodeType":"ModifierDefinition","parameters":{"id":3535,"nodeType":"ParameterList","parameters":[],"src":"1708:2:23"},"src":"1689:66:23","virtual":false,"visibility":"internal"},{"body":{"id":3549,"nodeType":"Block","src":"1903:31:23","statements":[{"expression":{"id":3547,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"1920:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3546,"id":3548,"nodeType":"Return","src":"1913:14:23"}]},"documentation":{"id":3542,"nodeType":"StructuredDocumentation","src":"1761:84:23","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":3550,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1859:6:23","nodeType":"FunctionDefinition","parameters":{"id":3543,"nodeType":"ParameterList","parameters":[],"src":"1865:2:23"},"returnParameters":{"id":3546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3550,"src":"1897:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3544,"name":"bool","nodeType":"ElementaryTypeName","src":"1897:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1896:6:23"},"scope":3608,"src":"1850:84:23","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":3561,"nodeType":"Block","src":"2053:77:23","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":3554,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"2067:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2067:8:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3560,"nodeType":"IfStatement","src":"2063:61:23","trueBody":{"id":3559,"nodeType":"Block","src":"2077:47:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3556,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3513,"src":"2098:13:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2098:15:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3558,"nodeType":"RevertStatement","src":"2091:22:23"}]}}]},"documentation":{"id":3551,"nodeType":"StructuredDocumentation","src":"1940:57:23","text":" @dev Throws if the contract is paused."},"id":3562,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"2011:17:23","nodeType":"FunctionDefinition","parameters":{"id":3552,"nodeType":"ParameterList","parameters":[],"src":"2028:2:23"},"returnParameters":{"id":3553,"nodeType":"ParameterList","parameters":[],"src":"2053:0:23"},"scope":3608,"src":"2002:128:23","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3574,"nodeType":"Block","src":"2250:78:23","statements":[{"condition":{"id":3568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2264:9:23","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3566,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3550,"src":"2265:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":3567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2265:8:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3573,"nodeType":"IfStatement","src":"2260:62:23","trueBody":{"id":3572,"nodeType":"Block","src":"2275:47:23","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3569,"name":"ExpectedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"2296:13:23","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:15:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3571,"nodeType":"RevertStatement","src":"2289:22:23"}]}}]},"documentation":{"id":3563,"nodeType":"StructuredDocumentation","src":"2136:61:23","text":" @dev Throws if the contract is not paused."},"id":3575,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"2211:14:23","nodeType":"FunctionDefinition","parameters":{"id":3564,"nodeType":"ParameterList","parameters":[],"src":"2225:2:23"},"returnParameters":{"id":3565,"nodeType":"ParameterList","parameters":[],"src":"2250:0:23"},"scope":3608,"src":"2202:126:23","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3590,"nodeType":"Block","src":"2512:66:23","statements":[{"expression":{"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3581,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"2522:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2532:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2522:14:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3584,"nodeType":"ExpressionStatement","src":"2522:14:23"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3586,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"2558:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3585,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3505,"src":"2551:6:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"EmitStatement","src":"2546:25:23"}]},"documentation":{"id":3576,"nodeType":"StructuredDocumentation","src":"2334:124:23","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":3591,"implemented":true,"kind":"function","modifiers":[{"id":3579,"kind":"modifierInvocation","modifierName":{"id":3578,"name":"whenNotPaused","nameLocations":["2498:13:23"],"nodeType":"IdentifierPath","referencedDeclaration":3533,"src":"2498:13:23"},"nodeType":"ModifierInvocation","src":"2498:13:23"}],"name":"_pause","nameLocation":"2472:6:23","nodeType":"FunctionDefinition","parameters":{"id":3577,"nodeType":"ParameterList","parameters":[],"src":"2478:2:23"},"returnParameters":{"id":3580,"nodeType":"ParameterList","parameters":[],"src":"2512:0:23"},"scope":3608,"src":"2463:115:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3606,"nodeType":"Block","src":"2758:69:23","statements":[{"expression":{"id":3599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3597,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3500,"src":"2768:7:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2778:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2768:15:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3600,"nodeType":"ExpressionStatement","src":"2768:15:23"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3602,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3399,"src":"2807:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2807:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3601,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3510,"src":"2798:8:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2798:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3605,"nodeType":"EmitStatement","src":"2793:27:23"}]},"documentation":{"id":3592,"nodeType":"StructuredDocumentation","src":"2584:121:23","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":3607,"implemented":true,"kind":"function","modifiers":[{"id":3595,"kind":"modifierInvocation","modifierName":{"id":3594,"name":"whenPaused","nameLocations":["2747:10:23"],"nodeType":"IdentifierPath","referencedDeclaration":3541,"src":"2747:10:23"},"nodeType":"ModifierInvocation","src":"2747:10:23"}],"name":"_unpause","nameLocation":"2719:8:23","nodeType":"FunctionDefinition","parameters":{"id":3593,"nodeType":"ParameterList","parameters":[],"src":"2727:2:23"},"returnParameters":{"id":3596,"nodeType":"ParameterList","parameters":[],"src":"2758:0:23"},"scope":3608,"src":"2710:117:23","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3609,"src":"615:2214:23","usedErrors":[3513,3516],"usedEvents":[3505,3510]}],"src":"102:2728:23"},"id":23},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[3732]},"id":3733,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3610,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"193:24:24"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"219:1187:24","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(newImplementation.code.length > 0);\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":3732,"linearizedBaseContracts":[3732],"name":"StorageSlot","nameLocation":"1415:11:24","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":3614,"members":[{"constant":false,"id":3613,"mutability":"mutable","name":"value","nameLocation":"1470:5:24","nodeType":"VariableDeclaration","scope":3614,"src":"1462:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3612,"name":"address","nodeType":"ElementaryTypeName","src":"1462:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1440:11:24","nodeType":"StructDefinition","scope":3732,"src":"1433:49:24","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":3617,"members":[{"constant":false,"id":3616,"mutability":"mutable","name":"value","nameLocation":"1522:5:24","nodeType":"VariableDeclaration","scope":3617,"src":"1517:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3615,"name":"bool","nodeType":"ElementaryTypeName","src":"1517:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1495:11:24","nodeType":"StructDefinition","scope":3732,"src":"1488:46:24","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":3620,"members":[{"constant":false,"id":3619,"mutability":"mutable","name":"value","nameLocation":"1577:5:24","nodeType":"VariableDeclaration","scope":3620,"src":"1569:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1569:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1547:11:24","nodeType":"StructDefinition","scope":3732,"src":"1540:49:24","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":3623,"members":[{"constant":false,"id":3622,"mutability":"mutable","name":"value","nameLocation":"1632:5:24","nodeType":"VariableDeclaration","scope":3623,"src":"1624:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3621,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1602:11:24","nodeType":"StructDefinition","scope":3732,"src":"1595:49:24","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":3626,"members":[{"constant":false,"id":3625,"mutability":"mutable","name":"value","nameLocation":"1685:5:24","nodeType":"VariableDeclaration","scope":3626,"src":"1678:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3624,"name":"int256","nodeType":"ElementaryTypeName","src":"1678:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"1657:10:24","nodeType":"StructDefinition","scope":3732,"src":"1650:47:24","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":3629,"members":[{"constant":false,"id":3628,"mutability":"mutable","name":"value","nameLocation":"1738:5:24","nodeType":"VariableDeclaration","scope":3629,"src":"1731:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3627,"name":"string","nodeType":"ElementaryTypeName","src":"1731:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1710:10:24","nodeType":"StructDefinition","scope":3732,"src":"1703:47:24","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":3632,"members":[{"constant":false,"id":3631,"mutability":"mutable","name":"value","nameLocation":"1789:5:24","nodeType":"VariableDeclaration","scope":3632,"src":"1783:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3630,"name":"bytes","nodeType":"ElementaryTypeName","src":"1783:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1763:9:24","nodeType":"StructDefinition","scope":3732,"src":"1756:45:24","visibility":"public"},{"body":{"id":3642,"nodeType":"Block","src":"1983:79:24","statements":[{"AST":{"nativeSrc":"2018:38:24","nodeType":"YulBlock","src":"2018:38:24","statements":[{"nativeSrc":"2032:14:24","nodeType":"YulAssignment","src":"2032:14:24","value":{"name":"slot","nativeSrc":"2042:4:24","nodeType":"YulIdentifier","src":"2042:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"2032:6:24","nodeType":"YulIdentifier","src":"2032:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3639,"isOffset":false,"isSlot":true,"src":"2032:6:24","suffix":"slot","valueSize":1},{"declaration":3635,"isOffset":false,"isSlot":false,"src":"2042:4:24","valueSize":1}],"flags":["memory-safe"],"id":3641,"nodeType":"InlineAssembly","src":"1993:63:24"}]},"documentation":{"id":3633,"nodeType":"StructuredDocumentation","src":"1807:87:24","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":3643,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1908:14:24","nodeType":"FunctionDefinition","parameters":{"id":3636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3635,"mutability":"mutable","name":"slot","nameLocation":"1931:4:24","nodeType":"VariableDeclaration","scope":3643,"src":"1923:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1922:14:24"},"returnParameters":{"id":3640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3639,"mutability":"mutable","name":"r","nameLocation":"1980:1:24","nodeType":"VariableDeclaration","scope":3643,"src":"1960:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":3638,"nodeType":"UserDefinedTypeName","pathNode":{"id":3637,"name":"AddressSlot","nameLocations":["1960:11:24"],"nodeType":"IdentifierPath","referencedDeclaration":3614,"src":"1960:11:24"},"referencedDeclaration":3614,"src":"1960:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$3614_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1959:23:24"},"scope":3732,"src":"1899:163:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3653,"nodeType":"Block","src":"2243:79:24","statements":[{"AST":{"nativeSrc":"2278:38:24","nodeType":"YulBlock","src":"2278:38:24","statements":[{"nativeSrc":"2292:14:24","nodeType":"YulAssignment","src":"2292:14:24","value":{"name":"slot","nativeSrc":"2302:4:24","nodeType":"YulIdentifier","src":"2302:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"2292:6:24","nodeType":"YulIdentifier","src":"2292:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3650,"isOffset":false,"isSlot":true,"src":"2292:6:24","suffix":"slot","valueSize":1},{"declaration":3646,"isOffset":false,"isSlot":false,"src":"2302:4:24","valueSize":1}],"flags":["memory-safe"],"id":3652,"nodeType":"InlineAssembly","src":"2253:63:24"}]},"documentation":{"id":3644,"nodeType":"StructuredDocumentation","src":"2068:86:24","text":" @dev Returns a `BooleanSlot` with member `value` located at `slot`."},"id":3654,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2168:14:24","nodeType":"FunctionDefinition","parameters":{"id":3647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3646,"mutability":"mutable","name":"slot","nameLocation":"2191:4:24","nodeType":"VariableDeclaration","scope":3654,"src":"2183:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2183:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2182:14:24"},"returnParameters":{"id":3651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3650,"mutability":"mutable","name":"r","nameLocation":"2240:1:24","nodeType":"VariableDeclaration","scope":3654,"src":"2220:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$3617_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":3649,"nodeType":"UserDefinedTypeName","pathNode":{"id":3648,"name":"BooleanSlot","nameLocations":["2220:11:24"],"nodeType":"IdentifierPath","referencedDeclaration":3617,"src":"2220:11:24"},"referencedDeclaration":3617,"src":"2220:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$3617_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2219:23:24"},"scope":3732,"src":"2159:163:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3664,"nodeType":"Block","src":"2503:79:24","statements":[{"AST":{"nativeSrc":"2538:38:24","nodeType":"YulBlock","src":"2538:38:24","statements":[{"nativeSrc":"2552:14:24","nodeType":"YulAssignment","src":"2552:14:24","value":{"name":"slot","nativeSrc":"2562:4:24","nodeType":"YulIdentifier","src":"2562:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"2552:6:24","nodeType":"YulIdentifier","src":"2552:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3661,"isOffset":false,"isSlot":true,"src":"2552:6:24","suffix":"slot","valueSize":1},{"declaration":3657,"isOffset":false,"isSlot":false,"src":"2562:4:24","valueSize":1}],"flags":["memory-safe"],"id":3663,"nodeType":"InlineAssembly","src":"2513:63:24"}]},"documentation":{"id":3655,"nodeType":"StructuredDocumentation","src":"2328:86:24","text":" @dev Returns a `Bytes32Slot` with member `value` located at `slot`."},"id":3665,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2428:14:24","nodeType":"FunctionDefinition","parameters":{"id":3658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3657,"mutability":"mutable","name":"slot","nameLocation":"2451:4:24","nodeType":"VariableDeclaration","scope":3665,"src":"2443:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2443:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2442:14:24"},"returnParameters":{"id":3662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3661,"mutability":"mutable","name":"r","nameLocation":"2500:1:24","nodeType":"VariableDeclaration","scope":3665,"src":"2480:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$3620_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":3660,"nodeType":"UserDefinedTypeName","pathNode":{"id":3659,"name":"Bytes32Slot","nameLocations":["2480:11:24"],"nodeType":"IdentifierPath","referencedDeclaration":3620,"src":"2480:11:24"},"referencedDeclaration":3620,"src":"2480:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$3620_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2479:23:24"},"scope":3732,"src":"2419:163:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3675,"nodeType":"Block","src":"2763:79:24","statements":[{"AST":{"nativeSrc":"2798:38:24","nodeType":"YulBlock","src":"2798:38:24","statements":[{"nativeSrc":"2812:14:24","nodeType":"YulAssignment","src":"2812:14:24","value":{"name":"slot","nativeSrc":"2822:4:24","nodeType":"YulIdentifier","src":"2822:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"2812:6:24","nodeType":"YulIdentifier","src":"2812:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3672,"isOffset":false,"isSlot":true,"src":"2812:6:24","suffix":"slot","valueSize":1},{"declaration":3668,"isOffset":false,"isSlot":false,"src":"2822:4:24","valueSize":1}],"flags":["memory-safe"],"id":3674,"nodeType":"InlineAssembly","src":"2773:63:24"}]},"documentation":{"id":3666,"nodeType":"StructuredDocumentation","src":"2588:86:24","text":" @dev Returns a `Uint256Slot` with member `value` located at `slot`."},"id":3676,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2688:14:24","nodeType":"FunctionDefinition","parameters":{"id":3669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3668,"mutability":"mutable","name":"slot","nameLocation":"2711:4:24","nodeType":"VariableDeclaration","scope":3676,"src":"2703:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2703:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2702:14:24"},"returnParameters":{"id":3673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3672,"mutability":"mutable","name":"r","nameLocation":"2760:1:24","nodeType":"VariableDeclaration","scope":3676,"src":"2740:21:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$3623_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":3671,"nodeType":"UserDefinedTypeName","pathNode":{"id":3670,"name":"Uint256Slot","nameLocations":["2740:11:24"],"nodeType":"IdentifierPath","referencedDeclaration":3623,"src":"2740:11:24"},"referencedDeclaration":3623,"src":"2740:11:24","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$3623_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2739:23:24"},"scope":3732,"src":"2679:163:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3686,"nodeType":"Block","src":"3020:79:24","statements":[{"AST":{"nativeSrc":"3055:38:24","nodeType":"YulBlock","src":"3055:38:24","statements":[{"nativeSrc":"3069:14:24","nodeType":"YulAssignment","src":"3069:14:24","value":{"name":"slot","nativeSrc":"3079:4:24","nodeType":"YulIdentifier","src":"3079:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"3069:6:24","nodeType":"YulIdentifier","src":"3069:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3683,"isOffset":false,"isSlot":true,"src":"3069:6:24","suffix":"slot","valueSize":1},{"declaration":3679,"isOffset":false,"isSlot":false,"src":"3079:4:24","valueSize":1}],"flags":["memory-safe"],"id":3685,"nodeType":"InlineAssembly","src":"3030:63:24"}]},"documentation":{"id":3677,"nodeType":"StructuredDocumentation","src":"2848:85:24","text":" @dev Returns a `Int256Slot` with member `value` located at `slot`."},"id":3687,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"2947:13:24","nodeType":"FunctionDefinition","parameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3679,"mutability":"mutable","name":"slot","nameLocation":"2969:4:24","nodeType":"VariableDeclaration","scope":3687,"src":"2961:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2961:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2960:14:24"},"returnParameters":{"id":3684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3683,"mutability":"mutable","name":"r","nameLocation":"3017:1:24","nodeType":"VariableDeclaration","scope":3687,"src":"2998:20:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$3626_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":3682,"nodeType":"UserDefinedTypeName","pathNode":{"id":3681,"name":"Int256Slot","nameLocations":["2998:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":3626,"src":"2998:10:24"},"referencedDeclaration":3626,"src":"2998:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$3626_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"2997:22:24"},"scope":3732,"src":"2938:161:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3697,"nodeType":"Block","src":"3277:79:24","statements":[{"AST":{"nativeSrc":"3312:38:24","nodeType":"YulBlock","src":"3312:38:24","statements":[{"nativeSrc":"3326:14:24","nodeType":"YulAssignment","src":"3326:14:24","value":{"name":"slot","nativeSrc":"3336:4:24","nodeType":"YulIdentifier","src":"3336:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"3326:6:24","nodeType":"YulIdentifier","src":"3326:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3694,"isOffset":false,"isSlot":true,"src":"3326:6:24","suffix":"slot","valueSize":1},{"declaration":3690,"isOffset":false,"isSlot":false,"src":"3336:4:24","valueSize":1}],"flags":["memory-safe"],"id":3696,"nodeType":"InlineAssembly","src":"3287:63:24"}]},"documentation":{"id":3688,"nodeType":"StructuredDocumentation","src":"3105:85:24","text":" @dev Returns a `StringSlot` with member `value` located at `slot`."},"id":3698,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3204:13:24","nodeType":"FunctionDefinition","parameters":{"id":3691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3690,"mutability":"mutable","name":"slot","nameLocation":"3226:4:24","nodeType":"VariableDeclaration","scope":3698,"src":"3218:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3218:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3217:14:24"},"returnParameters":{"id":3695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3694,"mutability":"mutable","name":"r","nameLocation":"3274:1:24","nodeType":"VariableDeclaration","scope":3698,"src":"3255:20:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3629_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":3693,"nodeType":"UserDefinedTypeName","pathNode":{"id":3692,"name":"StringSlot","nameLocations":["3255:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":3629,"src":"3255:10:24"},"referencedDeclaration":3629,"src":"3255:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3629_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3254:22:24"},"scope":3732,"src":"3195:161:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3708,"nodeType":"Block","src":"3558:85:24","statements":[{"AST":{"nativeSrc":"3593:44:24","nodeType":"YulBlock","src":"3593:44:24","statements":[{"nativeSrc":"3607:20:24","nodeType":"YulAssignment","src":"3607:20:24","value":{"name":"store.slot","nativeSrc":"3617:10:24","nodeType":"YulIdentifier","src":"3617:10:24"},"variableNames":[{"name":"r.slot","nativeSrc":"3607:6:24","nodeType":"YulIdentifier","src":"3607:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3705,"isOffset":false,"isSlot":true,"src":"3607:6:24","suffix":"slot","valueSize":1},{"declaration":3701,"isOffset":false,"isSlot":true,"src":"3617:10:24","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":3707,"nodeType":"InlineAssembly","src":"3568:69:24"}]},"documentation":{"id":3699,"nodeType":"StructuredDocumentation","src":"3362:101:24","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":3709,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3477:13:24","nodeType":"FunctionDefinition","parameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3701,"mutability":"mutable","name":"store","nameLocation":"3506:5:24","nodeType":"VariableDeclaration","scope":3709,"src":"3491:20:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3700,"name":"string","nodeType":"ElementaryTypeName","src":"3491:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3490:22:24"},"returnParameters":{"id":3706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3705,"mutability":"mutable","name":"r","nameLocation":"3555:1:24","nodeType":"VariableDeclaration","scope":3709,"src":"3536:20:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3629_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":3704,"nodeType":"UserDefinedTypeName","pathNode":{"id":3703,"name":"StringSlot","nameLocations":["3536:10:24"],"nodeType":"IdentifierPath","referencedDeclaration":3629,"src":"3536:10:24"},"referencedDeclaration":3629,"src":"3536:10:24","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$3629_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3535:22:24"},"scope":3732,"src":"3468:175:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3719,"nodeType":"Block","src":"3818:79:24","statements":[{"AST":{"nativeSrc":"3853:38:24","nodeType":"YulBlock","src":"3853:38:24","statements":[{"nativeSrc":"3867:14:24","nodeType":"YulAssignment","src":"3867:14:24","value":{"name":"slot","nativeSrc":"3877:4:24","nodeType":"YulIdentifier","src":"3877:4:24"},"variableNames":[{"name":"r.slot","nativeSrc":"3867:6:24","nodeType":"YulIdentifier","src":"3867:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3716,"isOffset":false,"isSlot":true,"src":"3867:6:24","suffix":"slot","valueSize":1},{"declaration":3712,"isOffset":false,"isSlot":false,"src":"3877:4:24","valueSize":1}],"flags":["memory-safe"],"id":3718,"nodeType":"InlineAssembly","src":"3828:63:24"}]},"documentation":{"id":3710,"nodeType":"StructuredDocumentation","src":"3649:84:24","text":" @dev Returns a `BytesSlot` with member `value` located at `slot`."},"id":3720,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3747:12:24","nodeType":"FunctionDefinition","parameters":{"id":3713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3712,"mutability":"mutable","name":"slot","nameLocation":"3768:4:24","nodeType":"VariableDeclaration","scope":3720,"src":"3760:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3760:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3759:14:24"},"returnParameters":{"id":3717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3716,"mutability":"mutable","name":"r","nameLocation":"3815:1:24","nodeType":"VariableDeclaration","scope":3720,"src":"3797:19:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3632_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":3715,"nodeType":"UserDefinedTypeName","pathNode":{"id":3714,"name":"BytesSlot","nameLocations":["3797:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":3632,"src":"3797:9:24"},"referencedDeclaration":3632,"src":"3797:9:24","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3632_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3796:21:24"},"scope":3732,"src":"3738:159:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3730,"nodeType":"Block","src":"4094:85:24","statements":[{"AST":{"nativeSrc":"4129:44:24","nodeType":"YulBlock","src":"4129:44:24","statements":[{"nativeSrc":"4143:20:24","nodeType":"YulAssignment","src":"4143:20:24","value":{"name":"store.slot","nativeSrc":"4153:10:24","nodeType":"YulIdentifier","src":"4153:10:24"},"variableNames":[{"name":"r.slot","nativeSrc":"4143:6:24","nodeType":"YulIdentifier","src":"4143:6:24"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3727,"isOffset":false,"isSlot":true,"src":"4143:6:24","suffix":"slot","valueSize":1},{"declaration":3723,"isOffset":false,"isSlot":true,"src":"4153:10:24","suffix":"slot","valueSize":1}],"flags":["memory-safe"],"id":3729,"nodeType":"InlineAssembly","src":"4104:69:24"}]},"documentation":{"id":3721,"nodeType":"StructuredDocumentation","src":"3903:99:24","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":3731,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4016:12:24","nodeType":"FunctionDefinition","parameters":{"id":3724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3723,"mutability":"mutable","name":"store","nameLocation":"4043:5:24","nodeType":"VariableDeclaration","scope":3731,"src":"4029:19:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3722,"name":"bytes","nodeType":"ElementaryTypeName","src":"4029:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4028:21:24"},"returnParameters":{"id":3728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"r","nameLocation":"4091:1:24","nodeType":"VariableDeclaration","scope":3731,"src":"4073:19:24","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3632_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":3726,"nodeType":"UserDefinedTypeName","pathNode":{"id":3725,"name":"BytesSlot","nameLocations":["4073:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":3632,"src":"4073:9:24"},"referencedDeclaration":3632,"src":"4073:9:24","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$3632_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4072:21:24"},"scope":3732,"src":"4007:172:24","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3733,"src":"1407:2774:24","usedErrors":[],"usedEvents":[]}],"src":"193:3989:24"},"id":24},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[3756],"IERC165":[3768]},"id":3757,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3734,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:25"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":3736,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":3769,"src":"140:38:25","symbolAliases":[{"foreign":{"id":3735,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"148:7:25","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3738,"name":"IERC165","nameLocations":["688:7:25"],"nodeType":"IdentifierPath","referencedDeclaration":3768,"src":"688:7:25"},"id":3739,"nodeType":"InheritanceSpecifier","src":"688:7:25"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":3737,"nodeType":"StructuredDocumentation","src":"180:479:25","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 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":3756,"linearizedBaseContracts":[3756,3768],"name":"ERC165","nameLocation":"678:6:25","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[3767],"body":{"id":3754,"nodeType":"Block","src":"845:64:25","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3747,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"862:11:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3749,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"882:7:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$3768_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$3768_$","typeString":"type(contract IERC165)"}],"id":3748,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"877:4:25","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"877:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$3768","typeString":"type(contract IERC165)"}},"id":3751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"891:11:25","memberName":"interfaceId","nodeType":"MemberAccess","src":"877:25:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"862:40:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3746,"id":3753,"nodeType":"Return","src":"855:47:25"}]},"documentation":{"id":3740,"nodeType":"StructuredDocumentation","src":"702:56:25","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3755,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"772:17:25","nodeType":"FunctionDefinition","parameters":{"id":3743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"interfaceId","nameLocation":"797:11:25","nodeType":"VariableDeclaration","scope":3755,"src":"790:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3741,"name":"bytes4","nodeType":"ElementaryTypeName","src":"790:6:25","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"789:20:25"},"returnParameters":{"id":3746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3755,"src":"839:4:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3744,"name":"bool","nodeType":"ElementaryTypeName","src":"839:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"838:6:25"},"scope":3756,"src":"763:146:25","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3757,"src":"660:251:25","usedErrors":[],"usedEvents":[]}],"src":"114:798:25"},"id":25},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[3768]},"id":3769,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3758,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:26"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":3759,"nodeType":"StructuredDocumentation","src":"141:280:26","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\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":3768,"linearizedBaseContracts":[3768],"name":"IERC165","nameLocation":"432:7:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3760,"nodeType":"StructuredDocumentation","src":"446:340:26","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[ERC 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":3767,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"800:17:26","nodeType":"FunctionDefinition","parameters":{"id":3763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3762,"mutability":"mutable","name":"interfaceId","nameLocation":"825:11:26","nodeType":"VariableDeclaration","scope":3767,"src":"818:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3761,"name":"bytes4","nodeType":"ElementaryTypeName","src":"818:6:26","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"817:20:26"},"returnParameters":{"id":3766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3765,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3767,"src":"861:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3764,"name":"bool","nodeType":"ElementaryTypeName","src":"861:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"860:6:26"},"scope":3768,"src":"791:76:26","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3769,"src":"422:447:26","usedErrors":[],"usedEvents":[]}],"src":"115:755:26"},"id":26},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[5374],"Panic":[3491],"SafeCast":[7139]},"id":5375,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3770,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:27"},{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","file":"../Panic.sol","id":3772,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5375,"sourceUnit":3492,"src":"129:35:27","symbolAliases":[{"foreign":{"id":3771,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"137:5:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":3774,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5375,"sourceUnit":7140,"src":"165:40:27","symbolAliases":[{"foreign":{"id":3773,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"173:8:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":3775,"nodeType":"StructuredDocumentation","src":"207:73:27","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":5374,"linearizedBaseContracts":[5374],"name":"Math","nameLocation":"289:4:27","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":3780,"members":[{"id":3776,"name":"Floor","nameLocation":"324:5:27","nodeType":"EnumValue","src":"324:5:27"},{"id":3777,"name":"Ceil","nameLocation":"367:4:27","nodeType":"EnumValue","src":"367:4:27"},{"id":3778,"name":"Trunc","nameLocation":"409:5:27","nodeType":"EnumValue","src":"409:5:27"},{"id":3779,"name":"Expand","nameLocation":"439:6:27","nodeType":"EnumValue","src":"439:6:27"}],"name":"Rounding","nameLocation":"305:8:27","nodeType":"EnumDefinition","src":"300:169:27"},{"body":{"id":3811,"nodeType":"Block","src":"677:140:27","statements":[{"id":3810,"nodeType":"UncheckedBlock","src":"687:124:27","statements":[{"assignments":[3793],"declarations":[{"constant":false,"id":3793,"mutability":"mutable","name":"c","nameLocation":"719:1:27","nodeType":"VariableDeclaration","scope":3810,"src":"711:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3792,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3797,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3794,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"723:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3795,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"727:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"723:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:17:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3798,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3793,"src":"746:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3799,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"750:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"746:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3805,"nodeType":"IfStatement","src":"742:28:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"761:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3803,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"760:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3791,"id":3804,"nodeType":"Return","src":"753:17:27"}},{"expression":{"components":[{"hexValue":"74727565","id":3806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"792:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3807,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3793,"src":"798:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3808,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"791:9:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3791,"id":3809,"nodeType":"Return","src":"784:16:27"}]}]},"documentation":{"id":3781,"nodeType":"StructuredDocumentation","src":"475:106:27","text":" @dev Returns the addition of two unsigned integers, with an success flag (no overflow)."},"id":3812,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"595:6:27","nodeType":"FunctionDefinition","parameters":{"id":3786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3783,"mutability":"mutable","name":"a","nameLocation":"610:1:27","nodeType":"VariableDeclaration","scope":3812,"src":"602:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3782,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3785,"mutability":"mutable","name":"b","nameLocation":"621:1:27","nodeType":"VariableDeclaration","scope":3812,"src":"613:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3784,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:27"},"returnParameters":{"id":3791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3788,"mutability":"mutable","name":"success","nameLocation":"652:7:27","nodeType":"VariableDeclaration","scope":3812,"src":"647:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3787,"name":"bool","nodeType":"ElementaryTypeName","src":"647:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3790,"mutability":"mutable","name":"result","nameLocation":"669:6:27","nodeType":"VariableDeclaration","scope":3812,"src":"661:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3789,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:30:27"},"scope":5374,"src":"586:231:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3839,"nodeType":"Block","src":"1028:113:27","statements":[{"id":3838,"nodeType":"UncheckedBlock","src":"1038:97:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3824,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"1066:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3825,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"1070:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1066:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3831,"nodeType":"IfStatement","src":"1062:28:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1081:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3829,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1080:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3823,"id":3830,"nodeType":"Return","src":"1073:17:27"}},{"expression":{"components":[{"hexValue":"74727565","id":3832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1112:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3833,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"1118:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3834,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"1122:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1118:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3836,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1111:13:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3823,"id":3837,"nodeType":"Return","src":"1104:20:27"}]}]},"documentation":{"id":3813,"nodeType":"StructuredDocumentation","src":"823:109:27","text":" @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)."},"id":3840,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:27","nodeType":"FunctionDefinition","parameters":{"id":3818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3815,"mutability":"mutable","name":"a","nameLocation":"961:1:27","nodeType":"VariableDeclaration","scope":3840,"src":"953:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3814,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3817,"mutability":"mutable","name":"b","nameLocation":"972:1:27","nodeType":"VariableDeclaration","scope":3840,"src":"964:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3816,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:27"},"returnParameters":{"id":3823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3820,"mutability":"mutable","name":"success","nameLocation":"1003:7:27","nodeType":"VariableDeclaration","scope":3840,"src":"998:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3819,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3822,"mutability":"mutable","name":"result","nameLocation":"1020:6:27","nodeType":"VariableDeclaration","scope":3840,"src":"1012:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:30:27"},"scope":5374,"src":"937:204:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3881,"nodeType":"Block","src":"1355:417:27","statements":[{"id":3880,"nodeType":"UncheckedBlock","src":"1365:401:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3852,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3843,"src":"1623:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1623:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3859,"nodeType":"IfStatement","src":"1619:28:27","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":3855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":3856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1638:9:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3851,"id":3858,"nodeType":"Return","src":"1631:16:27"}},{"assignments":[3861],"declarations":[{"constant":false,"id":3861,"mutability":"mutable","name":"c","nameLocation":"1669:1:27","nodeType":"VariableDeclaration","scope":3880,"src":"1661:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3860,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3865,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3862,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3843,"src":"1673:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3863,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"1677:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1673:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1661:17:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3866,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3861,"src":"1696:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3867,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3843,"src":"1700:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3869,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"1705:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3875,"nodeType":"IfStatement","src":"1692:33:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1716:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1715:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3851,"id":3874,"nodeType":"Return","src":"1708:17:27"}},{"expression":{"components":[{"hexValue":"74727565","id":3876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1747:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":3877,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3861,"src":"1753:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:9:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3851,"id":3879,"nodeType":"Return","src":"1739:16:27"}]}]},"documentation":{"id":3841,"nodeType":"StructuredDocumentation","src":"1147:112:27","text":" @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)."},"id":3882,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1273:6:27","nodeType":"FunctionDefinition","parameters":{"id":3846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3843,"mutability":"mutable","name":"a","nameLocation":"1288:1:27","nodeType":"VariableDeclaration","scope":3882,"src":"1280:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3845,"mutability":"mutable","name":"b","nameLocation":"1299:1:27","nodeType":"VariableDeclaration","scope":3882,"src":"1291:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3844,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:22:27"},"returnParameters":{"id":3851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3848,"mutability":"mutable","name":"success","nameLocation":"1330:7:27","nodeType":"VariableDeclaration","scope":3882,"src":"1325:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3847,"name":"bool","nodeType":"ElementaryTypeName","src":"1325:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3850,"mutability":"mutable","name":"result","nameLocation":"1347:6:27","nodeType":"VariableDeclaration","scope":3882,"src":"1339:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:30:27"},"scope":5374,"src":"1264:508:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3909,"nodeType":"Block","src":"1987:114:27","statements":[{"id":3908,"nodeType":"UncheckedBlock","src":"1997:98:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3894,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3887,"src":"2025:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2030:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3901,"nodeType":"IfStatement","src":"2021:29:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2041:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3899,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2040:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3893,"id":3900,"nodeType":"Return","src":"2033:17:27"}},{"expression":{"components":[{"hexValue":"74727565","id":3902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2072:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3903,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3885,"src":"2078:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3904,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3887,"src":"2082:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2078:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2071:13:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3893,"id":3907,"nodeType":"Return","src":"2064:20:27"}]}]},"documentation":{"id":3883,"nodeType":"StructuredDocumentation","src":"1778:113:27","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":3910,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1905:6:27","nodeType":"FunctionDefinition","parameters":{"id":3888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3885,"mutability":"mutable","name":"a","nameLocation":"1920:1:27","nodeType":"VariableDeclaration","scope":3910,"src":"1912:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3884,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3887,"mutability":"mutable","name":"b","nameLocation":"1931:1:27","nodeType":"VariableDeclaration","scope":3910,"src":"1923:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:22:27"},"returnParameters":{"id":3893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3890,"mutability":"mutable","name":"success","nameLocation":"1962:7:27","nodeType":"VariableDeclaration","scope":3910,"src":"1957:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3889,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3892,"mutability":"mutable","name":"result","nameLocation":"1979:6:27","nodeType":"VariableDeclaration","scope":3910,"src":"1971:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3891,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:30:27"},"scope":5374,"src":"1896:205:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3937,"nodeType":"Block","src":"2326:114:27","statements":[{"id":3936,"nodeType":"UncheckedBlock","src":"2336:98:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3922,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3915,"src":"2364:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2369:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3929,"nodeType":"IfStatement","src":"2360:29:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2380:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2387:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3927,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2379:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3921,"id":3928,"nodeType":"Return","src":"2372:17:27"}},{"expression":{"components":[{"hexValue":"74727565","id":3930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3931,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"2417:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3932,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3915,"src":"2421:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2410:13:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":3921,"id":3935,"nodeType":"Return","src":"2403:20:27"}]}]},"documentation":{"id":3911,"nodeType":"StructuredDocumentation","src":"2107:123:27","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":3938,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2244:6:27","nodeType":"FunctionDefinition","parameters":{"id":3916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"a","nameLocation":"2259:1:27","nodeType":"VariableDeclaration","scope":3938,"src":"2251:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3912,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3915,"mutability":"mutable","name":"b","nameLocation":"2270:1:27","nodeType":"VariableDeclaration","scope":3938,"src":"2262:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3914,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2250:22:27"},"returnParameters":{"id":3921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3918,"mutability":"mutable","name":"success","nameLocation":"2301:7:27","nodeType":"VariableDeclaration","scope":3938,"src":"2296:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3917,"name":"bool","nodeType":"ElementaryTypeName","src":"2296:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3920,"mutability":"mutable","name":"result","nameLocation":"2318:6:27","nodeType":"VariableDeclaration","scope":3938,"src":"2310:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:30:27"},"scope":5374,"src":"2235:205:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3964,"nodeType":"Block","src":"2912:207:27","statements":[{"id":3963,"nodeType":"UncheckedBlock","src":"2922:191:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3950,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"3060:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3951,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"3066:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3952,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"3070:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3066:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3065:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3957,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3941,"src":"3091:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3955,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"3075:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"3075:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3064:38:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:42:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3949,"id":3962,"nodeType":"Return","src":"3053:49:27"}]}]},"documentation":{"id":3939,"nodeType":"StructuredDocumentation","src":"2446:374:27","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":3965,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"2834:7:27","nodeType":"FunctionDefinition","parameters":{"id":3946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3941,"mutability":"mutable","name":"condition","nameLocation":"2847:9:27","nodeType":"VariableDeclaration","scope":3965,"src":"2842:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3940,"name":"bool","nodeType":"ElementaryTypeName","src":"2842:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3943,"mutability":"mutable","name":"a","nameLocation":"2866:1:27","nodeType":"VariableDeclaration","scope":3965,"src":"2858:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3942,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3945,"mutability":"mutable","name":"b","nameLocation":"2877:1:27","nodeType":"VariableDeclaration","scope":3965,"src":"2869:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3944,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:38:27"},"returnParameters":{"id":3949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3965,"src":"2903:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3947,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:9:27"},"scope":5374,"src":"2825:294:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3983,"nodeType":"Block","src":"3256:44:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3976,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3968,"src":"3281:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3977,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"3285:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3281:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3979,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3968,"src":"3288:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3980,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3970,"src":"3291:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3975,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"3273:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3974,"id":3982,"nodeType":"Return","src":"3266:27:27"}]},"documentation":{"id":3966,"nodeType":"StructuredDocumentation","src":"3125:59:27","text":" @dev Returns the largest of two numbers."},"id":3984,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3198:3:27","nodeType":"FunctionDefinition","parameters":{"id":3971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3968,"mutability":"mutable","name":"a","nameLocation":"3210:1:27","nodeType":"VariableDeclaration","scope":3984,"src":"3202:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3967,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3970,"mutability":"mutable","name":"b","nameLocation":"3221:1:27","nodeType":"VariableDeclaration","scope":3984,"src":"3213:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3969,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:22:27"},"returnParameters":{"id":3974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3984,"src":"3247:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3972,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:9:27"},"scope":5374,"src":"3189:111:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4002,"nodeType":"Block","src":"3438:44:27","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3995,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"3463:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3996,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"3467:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3463:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3998,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3987,"src":"3470:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3999,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"3473:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3994,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"3455:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":4000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3993,"id":4001,"nodeType":"Return","src":"3448:27:27"}]},"documentation":{"id":3985,"nodeType":"StructuredDocumentation","src":"3306:60:27","text":" @dev Returns the smallest of two numbers."},"id":4003,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3380:3:27","nodeType":"FunctionDefinition","parameters":{"id":3990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3987,"mutability":"mutable","name":"a","nameLocation":"3392:1:27","nodeType":"VariableDeclaration","scope":4003,"src":"3384:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3986,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3989,"mutability":"mutable","name":"b","nameLocation":"3403:1:27","nodeType":"VariableDeclaration","scope":4003,"src":"3395:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3988,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3383:22:27"},"returnParameters":{"id":3993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4003,"src":"3429:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3991,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3428:9:27"},"scope":5374,"src":"3371:111:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4025,"nodeType":"Block","src":"3666:82:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4013,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"3721:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4014,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"3725:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3721:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3720:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4017,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4006,"src":"3731:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4018,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4008,"src":"3735:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4020,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3730:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":4021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3740:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3730:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4012,"id":4024,"nodeType":"Return","src":"3713:28:27"}]},"documentation":{"id":4004,"nodeType":"StructuredDocumentation","src":"3488:102:27","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":4026,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"3604:7:27","nodeType":"FunctionDefinition","parameters":{"id":4009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4006,"mutability":"mutable","name":"a","nameLocation":"3620:1:27","nodeType":"VariableDeclaration","scope":4026,"src":"3612:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4005,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4008,"mutability":"mutable","name":"b","nameLocation":"3631:1:27","nodeType":"VariableDeclaration","scope":4026,"src":"3623:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4007,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3611:22:27"},"returnParameters":{"id":4012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4026,"src":"3657:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4010,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3656:9:27"},"scope":5374,"src":"3595:153:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4066,"nodeType":"Block","src":"4040:633:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4036,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4031,"src":"4054:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4059:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4054:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4047,"nodeType":"IfStatement","src":"4050:150:27","trueBody":{"id":4046,"nodeType":"Block","src":"4062:138:27","statements":[{"expression":{"arguments":[{"expression":{"id":4042,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"4166:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4172:16:27","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":3458,"src":"4166:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4039,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"4154:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4160:5:27","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":3490,"src":"4154:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":4044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4045,"nodeType":"ExpressionStatement","src":"4154:35:27"}]}},{"id":4065,"nodeType":"UncheckedBlock","src":"4583:84:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4050,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4029,"src":"4630:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4634:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4630:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4048,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"4614:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"4614:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:22:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4054,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4029,"src":"4641:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4645:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4641:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4640:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4058,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4031,"src":"4650:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4654:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4640:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4639:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:42:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4035,"id":4064,"nodeType":"Return","src":"4607:49:27"}]}]},"documentation":{"id":4027,"nodeType":"StructuredDocumentation","src":"3754:210:27","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":4067,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3978:7:27","nodeType":"FunctionDefinition","parameters":{"id":4032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4029,"mutability":"mutable","name":"a","nameLocation":"3994:1:27","nodeType":"VariableDeclaration","scope":4067,"src":"3986:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4028,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4031,"mutability":"mutable","name":"b","nameLocation":"4005:1:27","nodeType":"VariableDeclaration","scope":4067,"src":"3997:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4030,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:22:27"},"returnParameters":{"id":4035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4067,"src":"4031:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4033,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4030:9:27"},"scope":5374,"src":"3969:704:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4203,"nodeType":"Block","src":"5094:4128:27","statements":[{"id":4202,"nodeType":"UncheckedBlock","src":"5104:4112:27","statements":[{"assignments":[4080],"declarations":[{"constant":false,"id":4080,"mutability":"mutable","name":"prod0","nameLocation":"5441:5:27","nodeType":"VariableDeclaration","scope":4202,"src":"5433:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4079,"name":"uint256","nodeType":"ElementaryTypeName","src":"5433:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4081,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"5449:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4082,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"5453:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5449:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5433:21:27"},{"assignments":[4086],"declarations":[{"constant":false,"id":4086,"mutability":"mutable","name":"prod1","nameLocation":"5521:5:27","nodeType":"VariableDeclaration","scope":4202,"src":"5513:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4085,"name":"uint256","nodeType":"ElementaryTypeName","src":"5513:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4087,"nodeType":"VariableDeclarationStatement","src":"5513:13:27"},{"AST":{"nativeSrc":"5593:122:27","nodeType":"YulBlock","src":"5593:122:27","statements":[{"nativeSrc":"5611:30:27","nodeType":"YulVariableDeclaration","src":"5611:30:27","value":{"arguments":[{"name":"x","nativeSrc":"5628:1:27","nodeType":"YulIdentifier","src":"5628:1:27"},{"name":"y","nativeSrc":"5631:1:27","nodeType":"YulIdentifier","src":"5631:1:27"},{"arguments":[{"kind":"number","nativeSrc":"5638:1:27","nodeType":"YulLiteral","src":"5638:1:27","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"5634:3:27","nodeType":"YulIdentifier","src":"5634:3:27"},"nativeSrc":"5634:6:27","nodeType":"YulFunctionCall","src":"5634:6:27"}],"functionName":{"name":"mulmod","nativeSrc":"5621:6:27","nodeType":"YulIdentifier","src":"5621:6:27"},"nativeSrc":"5621:20:27","nodeType":"YulFunctionCall","src":"5621:20:27"},"variables":[{"name":"mm","nativeSrc":"5615:2:27","nodeType":"YulTypedName","src":"5615:2:27","type":""}]},{"nativeSrc":"5658:43:27","nodeType":"YulAssignment","src":"5658:43:27","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"5675:2:27","nodeType":"YulIdentifier","src":"5675:2:27"},{"name":"prod0","nativeSrc":"5679:5:27","nodeType":"YulIdentifier","src":"5679:5:27"}],"functionName":{"name":"sub","nativeSrc":"5671:3:27","nodeType":"YulIdentifier","src":"5671:3:27"},"nativeSrc":"5671:14:27","nodeType":"YulFunctionCall","src":"5671:14:27"},{"arguments":[{"name":"mm","nativeSrc":"5690:2:27","nodeType":"YulIdentifier","src":"5690:2:27"},{"name":"prod0","nativeSrc":"5694:5:27","nodeType":"YulIdentifier","src":"5694:5:27"}],"functionName":{"name":"lt","nativeSrc":"5687:2:27","nodeType":"YulIdentifier","src":"5687:2:27"},"nativeSrc":"5687:13:27","nodeType":"YulFunctionCall","src":"5687:13:27"}],"functionName":{"name":"sub","nativeSrc":"5667:3:27","nodeType":"YulIdentifier","src":"5667:3:27"},"nativeSrc":"5667:34:27","nodeType":"YulFunctionCall","src":"5667:34:27"},"variableNames":[{"name":"prod1","nativeSrc":"5658:5:27","nodeType":"YulIdentifier","src":"5658:5:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4080,"isOffset":false,"isSlot":false,"src":"5679:5:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"5694:5:27","valueSize":1},{"declaration":4086,"isOffset":false,"isSlot":false,"src":"5658:5:27","valueSize":1},{"declaration":4070,"isOffset":false,"isSlot":false,"src":"5628:1:27","valueSize":1},{"declaration":4072,"isOffset":false,"isSlot":false,"src":"5631:1:27","valueSize":1}],"id":4088,"nodeType":"InlineAssembly","src":"5584:131:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4089,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4086,"src":"5796:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5805:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5796:10:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4097,"nodeType":"IfStatement","src":"5792:368:27","trueBody":{"id":4096,"nodeType":"Block","src":"5808:352:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4092,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"6126:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4093,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"6134:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6126:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4078,"id":4095,"nodeType":"Return","src":"6119:26:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4098,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"6270:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":4099,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4086,"src":"6285:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6270:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4116,"nodeType":"IfStatement","src":"6266:143:27","trueBody":{"id":4115,"nodeType":"Block","src":"6292:117:27","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4105,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"6330:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6345:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6330:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":4108,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"6348:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6354:16:27","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":3458,"src":"6348:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4110,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"6372:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6378:14:27","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":3454,"src":"6372:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4104,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"6322:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6322:71:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4101,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"6310:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6316:5:27","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":3490,"src":"6310:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6310:84:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4114,"nodeType":"ExpressionStatement","src":"6310:84:27"}]}},{"assignments":[4118],"declarations":[{"constant":false,"id":4118,"mutability":"mutable","name":"remainder","nameLocation":"6672:9:27","nodeType":"VariableDeclaration","scope":4202,"src":"6664:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4117,"name":"uint256","nodeType":"ElementaryTypeName","src":"6664:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4119,"nodeType":"VariableDeclarationStatement","src":"6664:17:27"},{"AST":{"nativeSrc":"6704:291:27","nodeType":"YulBlock","src":"6704:291:27","statements":[{"nativeSrc":"6773:38:27","nodeType":"YulAssignment","src":"6773:38:27","value":{"arguments":[{"name":"x","nativeSrc":"6793:1:27","nodeType":"YulIdentifier","src":"6793:1:27"},{"name":"y","nativeSrc":"6796:1:27","nodeType":"YulIdentifier","src":"6796:1:27"},{"name":"denominator","nativeSrc":"6799:11:27","nodeType":"YulIdentifier","src":"6799:11:27"}],"functionName":{"name":"mulmod","nativeSrc":"6786:6:27","nodeType":"YulIdentifier","src":"6786:6:27"},"nativeSrc":"6786:25:27","nodeType":"YulFunctionCall","src":"6786:25:27"},"variableNames":[{"name":"remainder","nativeSrc":"6773:9:27","nodeType":"YulIdentifier","src":"6773:9:27"}]},{"nativeSrc":"6893:41:27","nodeType":"YulAssignment","src":"6893:41:27","value":{"arguments":[{"name":"prod1","nativeSrc":"6906:5:27","nodeType":"YulIdentifier","src":"6906:5:27"},{"arguments":[{"name":"remainder","nativeSrc":"6916:9:27","nodeType":"YulIdentifier","src":"6916:9:27"},{"name":"prod0","nativeSrc":"6927:5:27","nodeType":"YulIdentifier","src":"6927:5:27"}],"functionName":{"name":"gt","nativeSrc":"6913:2:27","nodeType":"YulIdentifier","src":"6913:2:27"},"nativeSrc":"6913:20:27","nodeType":"YulFunctionCall","src":"6913:20:27"}],"functionName":{"name":"sub","nativeSrc":"6902:3:27","nodeType":"YulIdentifier","src":"6902:3:27"},"nativeSrc":"6902:32:27","nodeType":"YulFunctionCall","src":"6902:32:27"},"variableNames":[{"name":"prod1","nativeSrc":"6893:5:27","nodeType":"YulIdentifier","src":"6893:5:27"}]},{"nativeSrc":"6951:30:27","nodeType":"YulAssignment","src":"6951:30:27","value":{"arguments":[{"name":"prod0","nativeSrc":"6964:5:27","nodeType":"YulIdentifier","src":"6964:5:27"},{"name":"remainder","nativeSrc":"6971:9:27","nodeType":"YulIdentifier","src":"6971:9:27"}],"functionName":{"name":"sub","nativeSrc":"6960:3:27","nodeType":"YulIdentifier","src":"6960:3:27"},"nativeSrc":"6960:21:27","nodeType":"YulFunctionCall","src":"6960:21:27"},"variableNames":[{"name":"prod0","nativeSrc":"6951:5:27","nodeType":"YulIdentifier","src":"6951:5:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4074,"isOffset":false,"isSlot":false,"src":"6799:11:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"6927:5:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"6951:5:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"6964:5:27","valueSize":1},{"declaration":4086,"isOffset":false,"isSlot":false,"src":"6893:5:27","valueSize":1},{"declaration":4086,"isOffset":false,"isSlot":false,"src":"6906:5:27","valueSize":1},{"declaration":4118,"isOffset":false,"isSlot":false,"src":"6773:9:27","valueSize":1},{"declaration":4118,"isOffset":false,"isSlot":false,"src":"6916:9:27","valueSize":1},{"declaration":4118,"isOffset":false,"isSlot":false,"src":"6971:9:27","valueSize":1},{"declaration":4070,"isOffset":false,"isSlot":false,"src":"6793:1:27","valueSize":1},{"declaration":4072,"isOffset":false,"isSlot":false,"src":"6796:1:27","valueSize":1}],"id":4120,"nodeType":"InlineAssembly","src":"6695:300:27"},{"assignments":[4122],"declarations":[{"constant":false,"id":4122,"mutability":"mutable","name":"twos","nameLocation":"7207:4:27","nodeType":"VariableDeclaration","scope":4202,"src":"7199:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7199:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4129,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4123,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"7214:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":4124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4125,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"7233:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7229:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4127,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7228:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7214:31:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7199:46:27"},{"AST":{"nativeSrc":"7268:366:27","nodeType":"YulBlock","src":"7268:366:27","statements":[{"nativeSrc":"7333:37:27","nodeType":"YulAssignment","src":"7333:37:27","value":{"arguments":[{"name":"denominator","nativeSrc":"7352:11:27","nodeType":"YulIdentifier","src":"7352:11:27"},{"name":"twos","nativeSrc":"7365:4:27","nodeType":"YulIdentifier","src":"7365:4:27"}],"functionName":{"name":"div","nativeSrc":"7348:3:27","nodeType":"YulIdentifier","src":"7348:3:27"},"nativeSrc":"7348:22:27","nodeType":"YulFunctionCall","src":"7348:22:27"},"variableNames":[{"name":"denominator","nativeSrc":"7333:11:27","nodeType":"YulIdentifier","src":"7333:11:27"}]},{"nativeSrc":"7437:25:27","nodeType":"YulAssignment","src":"7437:25:27","value":{"arguments":[{"name":"prod0","nativeSrc":"7450:5:27","nodeType":"YulIdentifier","src":"7450:5:27"},{"name":"twos","nativeSrc":"7457:4:27","nodeType":"YulIdentifier","src":"7457:4:27"}],"functionName":{"name":"div","nativeSrc":"7446:3:27","nodeType":"YulIdentifier","src":"7446:3:27"},"nativeSrc":"7446:16:27","nodeType":"YulFunctionCall","src":"7446:16:27"},"variableNames":[{"name":"prod0","nativeSrc":"7437:5:27","nodeType":"YulIdentifier","src":"7437:5:27"}]},{"nativeSrc":"7581:39:27","nodeType":"YulAssignment","src":"7581:39:27","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7601:1:27","nodeType":"YulLiteral","src":"7601:1:27","type":"","value":"0"},{"name":"twos","nativeSrc":"7604:4:27","nodeType":"YulIdentifier","src":"7604:4:27"}],"functionName":{"name":"sub","nativeSrc":"7597:3:27","nodeType":"YulIdentifier","src":"7597:3:27"},"nativeSrc":"7597:12:27","nodeType":"YulFunctionCall","src":"7597:12:27"},{"name":"twos","nativeSrc":"7611:4:27","nodeType":"YulIdentifier","src":"7611:4:27"}],"functionName":{"name":"div","nativeSrc":"7593:3:27","nodeType":"YulIdentifier","src":"7593:3:27"},"nativeSrc":"7593:23:27","nodeType":"YulFunctionCall","src":"7593:23:27"},{"kind":"number","nativeSrc":"7618:1:27","nodeType":"YulLiteral","src":"7618:1:27","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7589:3:27","nodeType":"YulIdentifier","src":"7589:3:27"},"nativeSrc":"7589:31:27","nodeType":"YulFunctionCall","src":"7589:31:27"},"variableNames":[{"name":"twos","nativeSrc":"7581:4:27","nodeType":"YulIdentifier","src":"7581:4:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4074,"isOffset":false,"isSlot":false,"src":"7333:11:27","valueSize":1},{"declaration":4074,"isOffset":false,"isSlot":false,"src":"7352:11:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"7437:5:27","valueSize":1},{"declaration":4080,"isOffset":false,"isSlot":false,"src":"7450:5:27","valueSize":1},{"declaration":4122,"isOffset":false,"isSlot":false,"src":"7365:4:27","valueSize":1},{"declaration":4122,"isOffset":false,"isSlot":false,"src":"7457:4:27","valueSize":1},{"declaration":4122,"isOffset":false,"isSlot":false,"src":"7581:4:27","valueSize":1},{"declaration":4122,"isOffset":false,"isSlot":false,"src":"7604:4:27","valueSize":1},{"declaration":4122,"isOffset":false,"isSlot":false,"src":"7611:4:27","valueSize":1}],"id":4130,"nodeType":"InlineAssembly","src":"7259:375:27"},{"expression":{"id":4135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4131,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"7700:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4132,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4086,"src":"7709:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4133,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4122,"src":"7717:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7709:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7700:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4136,"nodeType":"ExpressionStatement","src":"7700:21:27"},{"assignments":[4138],"declarations":[{"constant":false,"id":4138,"mutability":"mutable","name":"inverse","nameLocation":"8064:7:27","nodeType":"VariableDeclaration","scope":4202,"src":"8056:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint256","nodeType":"ElementaryTypeName","src":"8056:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4145,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":4139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8075:1:27","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4140,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8079:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8075:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4142,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8074:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":4143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8094:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8074:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8056:39:27"},{"expression":{"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4146,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8312:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8323:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4148,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8327:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4149,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8341:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8327:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8323:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8312:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4153,"nodeType":"ExpressionStatement","src":"8312:36:27"},{"expression":{"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4154,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8382:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8393:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4156,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8397:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4157,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8411:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8397:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8393:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8382:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4161,"nodeType":"ExpressionStatement","src":"8382:36:27"},{"expression":{"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8454:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8465:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4164,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8469:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4165,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8483:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8465:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8454:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4169,"nodeType":"ExpressionStatement","src":"8454:36:27"},{"expression":{"id":4176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4170,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8525:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8536:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4172,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8540:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4173,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8554:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8536:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8525:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4177,"nodeType":"ExpressionStatement","src":"8525:36:27"},{"expression":{"id":4184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4178,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8598:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8609:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4180,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8613:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4181,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8627:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8609:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8598:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4185,"nodeType":"ExpressionStatement","src":"8598:36:27"},{"expression":{"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4186,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8672:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8683:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4188,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"8687:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4189,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"8701:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8687:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8683:25:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8672:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4193,"nodeType":"ExpressionStatement","src":"8672:36:27"},{"expression":{"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4194,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"9154:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4195,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"9163:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4196,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4138,"src":"9171:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9163:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9154:24:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4199,"nodeType":"ExpressionStatement","src":"9154:24:27"},{"expression":{"id":4200,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"9199:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4078,"id":4201,"nodeType":"Return","src":"9192:13:27"}]}]},"documentation":{"id":4068,"nodeType":"StructuredDocumentation","src":"4679:312:27","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n 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":4204,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5005:6:27","nodeType":"FunctionDefinition","parameters":{"id":4075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4070,"mutability":"mutable","name":"x","nameLocation":"5020:1:27","nodeType":"VariableDeclaration","scope":4204,"src":"5012:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4069,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4072,"mutability":"mutable","name":"y","nameLocation":"5031:1:27","nodeType":"VariableDeclaration","scope":4204,"src":"5023:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4071,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4074,"mutability":"mutable","name":"denominator","nameLocation":"5042:11:27","nodeType":"VariableDeclaration","scope":4204,"src":"5034:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:43:27"},"returnParameters":{"id":4078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4077,"mutability":"mutable","name":"result","nameLocation":"5086:6:27","nodeType":"VariableDeclaration","scope":4204,"src":"5078:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4076,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5077:16:27"},"scope":5374,"src":"4996:4226:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4240,"nodeType":"Block","src":"9461:128:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4220,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"9485:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4221,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4209,"src":"9488:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4222,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"9491:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4219,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[4204,4241],"referencedDeclaration":4204,"src":"9478:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9478:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4227,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4214,"src":"9539:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":4226,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9522:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9522:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4230,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4207,"src":"9559:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4231,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4209,"src":"9562:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4232,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4211,"src":"9565:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4229,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"9552:6:27","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9552:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9580:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9552:29:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9522:59:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4224,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"9506:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9515:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"9506:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9506:76:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9478:104:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4218,"id":4239,"nodeType":"Return","src":"9471:111:27"}]},"documentation":{"id":4205,"nodeType":"StructuredDocumentation","src":"9228:118:27","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":4241,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"9360:6:27","nodeType":"FunctionDefinition","parameters":{"id":4215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4207,"mutability":"mutable","name":"x","nameLocation":"9375:1:27","nodeType":"VariableDeclaration","scope":4241,"src":"9367:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4206,"name":"uint256","nodeType":"ElementaryTypeName","src":"9367:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4209,"mutability":"mutable","name":"y","nameLocation":"9386:1:27","nodeType":"VariableDeclaration","scope":4241,"src":"9378:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4208,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4211,"mutability":"mutable","name":"denominator","nameLocation":"9397:11:27","nodeType":"VariableDeclaration","scope":4241,"src":"9389:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4210,"name":"uint256","nodeType":"ElementaryTypeName","src":"9389:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4214,"mutability":"mutable","name":"rounding","nameLocation":"9419:8:27","nodeType":"VariableDeclaration","scope":4241,"src":"9410:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":4213,"nodeType":"UserDefinedTypeName","pathNode":{"id":4212,"name":"Rounding","nameLocations":["9410:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"9410:8:27"},"referencedDeclaration":3780,"src":"9410:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9366:62:27"},"returnParameters":{"id":4218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4241,"src":"9452:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4216,"name":"uint256","nodeType":"ElementaryTypeName","src":"9452:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9451:9:27"},"scope":5374,"src":"9351:238:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4337,"nodeType":"Block","src":"10223:1849:27","statements":[{"id":4336,"nodeType":"UncheckedBlock","src":"10233:1833:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4251,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4246,"src":"10261:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10266:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10261:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4256,"nodeType":"IfStatement","src":"10257:20:27","trueBody":{"expression":{"hexValue":"30","id":4254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4250,"id":4255,"nodeType":"Return","src":"10269:8:27"}},{"assignments":[4258],"declarations":[{"constant":false,"id":4258,"mutability":"mutable","name":"remainder","nameLocation":"10756:9:27","nodeType":"VariableDeclaration","scope":4336,"src":"10748:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4257,"name":"uint256","nodeType":"ElementaryTypeName","src":"10748:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4262,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4259,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"10768:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":4260,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4246,"src":"10772:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10768:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10748:25:27"},{"assignments":[4264],"declarations":[{"constant":false,"id":4264,"mutability":"mutable","name":"gcd","nameLocation":"10795:3:27","nodeType":"VariableDeclaration","scope":4336,"src":"10787:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4263,"name":"uint256","nodeType":"ElementaryTypeName","src":"10787:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4266,"initialValue":{"id":4265,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4246,"src":"10801:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10787:15:27"},{"assignments":[4268],"declarations":[{"constant":false,"id":4268,"mutability":"mutable","name":"x","nameLocation":"10945:1:27","nodeType":"VariableDeclaration","scope":4336,"src":"10938:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4267,"name":"int256","nodeType":"ElementaryTypeName","src":"10938:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":4270,"initialValue":{"hexValue":"30","id":4269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10949:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10938:12:27"},{"assignments":[4272],"declarations":[{"constant":false,"id":4272,"mutability":"mutable","name":"y","nameLocation":"10971:1:27","nodeType":"VariableDeclaration","scope":4336,"src":"10964:8:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4271,"name":"int256","nodeType":"ElementaryTypeName","src":"10964:6:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":4274,"initialValue":{"hexValue":"31","id":4273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10975:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"10964:12:27"},{"body":{"id":4311,"nodeType":"Block","src":"11014:882:27","statements":[{"assignments":[4279],"declarations":[{"constant":false,"id":4279,"mutability":"mutable","name":"quotient","nameLocation":"11040:8:27","nodeType":"VariableDeclaration","scope":4311,"src":"11032:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4278,"name":"uint256","nodeType":"ElementaryTypeName","src":"11032:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4283,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4280,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4264,"src":"11051:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4281,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"11057:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11051:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11032:34:27"},{"expression":{"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4284,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4264,"src":"11086:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4285,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"11091:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4286,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11085:16:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":4287,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"11191:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4288,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4264,"src":"11436:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4289,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"11442:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4290,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"11454:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11442:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11436:26:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4293,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11104:376:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11085:395:27","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4295,"nodeType":"ExpressionStatement","src":"11085:395:27"},{"expression":{"id":4309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4296,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"11500:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":4297,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"11503:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4298,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11499:6:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":4299,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"11585:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4300,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"11839:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4301,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"11843:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":4304,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"11854:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11847:6:27","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":4302,"name":"int256","nodeType":"ElementaryTypeName","src":"11847:6:27","typeDescriptions":{}}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11847:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11843:20:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11839:24:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11508:373:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"11499:382:27","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4310,"nodeType":"ExpressionStatement","src":"11499:382:27"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4275,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4258,"src":"10998:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11011:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10998:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4312,"nodeType":"WhileStatement","src":"10991:905:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4313,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4264,"src":"11914:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":4314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11921:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11914:8:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4318,"nodeType":"IfStatement","src":"11910:22:27","trueBody":{"expression":{"hexValue":"30","id":4316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11931:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4250,"id":4317,"nodeType":"Return","src":"11924:8:27"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4320,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"11983:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11987:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11983:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4323,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4246,"src":"11990:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"12002:2:27","subExpression":{"id":4326,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"12003:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11994:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4324,"name":"uint256","nodeType":"ElementaryTypeName","src":"11994:7:27","typeDescriptions":{}}},"id":4328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11994:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11990:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":4332,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4268,"src":"12015:1:27","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12007:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4330,"name":"uint256","nodeType":"ElementaryTypeName","src":"12007:7:27","typeDescriptions":{}}},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12007:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4319,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"11975:7:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11975:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4250,"id":4335,"nodeType":"Return","src":"11968:50:27"}]}]},"documentation":{"id":4242,"nodeType":"StructuredDocumentation","src":"9595:553:27","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}."},"id":4338,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"10162:6:27","nodeType":"FunctionDefinition","parameters":{"id":4247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4244,"mutability":"mutable","name":"a","nameLocation":"10177:1:27","nodeType":"VariableDeclaration","scope":4338,"src":"10169:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4243,"name":"uint256","nodeType":"ElementaryTypeName","src":"10169:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4246,"mutability":"mutable","name":"n","nameLocation":"10188:1:27","nodeType":"VariableDeclaration","scope":4338,"src":"10180:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4245,"name":"uint256","nodeType":"ElementaryTypeName","src":"10180:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10168:22:27"},"returnParameters":{"id":4250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4338,"src":"10214:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4248,"name":"uint256","nodeType":"ElementaryTypeName","src":"10214:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10213:9:27"},"scope":5374,"src":"10153:1919:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4358,"nodeType":"Block","src":"12672:82:27","statements":[{"id":4357,"nodeType":"UncheckedBlock","src":"12682:66:27","statements":[{"expression":{"arguments":[{"id":4350,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4341,"src":"12725:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4351,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4343,"src":"12728:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":4352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12732:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12728:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4354,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4343,"src":"12735:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4348,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5374,"src":"12713:4:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$5374_$","typeString":"type(library Math)"}},"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12718:6:27","memberName":"modExp","nodeType":"MemberAccess","referencedDeclaration":4395,"src":"12713:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12713:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4347,"id":4356,"nodeType":"Return","src":"12706:31:27"}]}]},"documentation":{"id":4339,"nodeType":"StructuredDocumentation","src":"12078:514:27","text":" @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`."},"id":4359,"implemented":true,"kind":"function","modifiers":[],"name":"invModPrime","nameLocation":"12606:11:27","nodeType":"FunctionDefinition","parameters":{"id":4344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"mutability":"mutable","name":"a","nameLocation":"12626:1:27","nodeType":"VariableDeclaration","scope":4359,"src":"12618:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4340,"name":"uint256","nodeType":"ElementaryTypeName","src":"12618:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4343,"mutability":"mutable","name":"p","nameLocation":"12637:1:27","nodeType":"VariableDeclaration","scope":4359,"src":"12629:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4342,"name":"uint256","nodeType":"ElementaryTypeName","src":"12629:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12617:22:27"},"returnParameters":{"id":4347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4359,"src":"12663:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4345,"name":"uint256","nodeType":"ElementaryTypeName","src":"12663:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12662:9:27"},"scope":5374,"src":"12597:157:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4394,"nodeType":"Block","src":"13524:174:27","statements":[{"assignments":[4372,4374],"declarations":[{"constant":false,"id":4372,"mutability":"mutable","name":"success","nameLocation":"13540:7:27","nodeType":"VariableDeclaration","scope":4394,"src":"13535:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4371,"name":"bool","nodeType":"ElementaryTypeName","src":"13535:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4374,"mutability":"mutable","name":"result","nameLocation":"13557:6:27","nodeType":"VariableDeclaration","scope":4394,"src":"13549:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4373,"name":"uint256","nodeType":"ElementaryTypeName","src":"13549:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4380,"initialValue":{"arguments":[{"id":4376,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"13577:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4377,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"13580:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4378,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4366,"src":"13583:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4375,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[4419,4501],"referencedDeclaration":4419,"src":"13567:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13567:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"13534:51:27"},{"condition":{"id":4382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13599:8:27","subExpression":{"id":4381,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4372,"src":"13600:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4391,"nodeType":"IfStatement","src":"13595:74:27","trueBody":{"id":4390,"nodeType":"Block","src":"13609:60:27","statements":[{"expression":{"arguments":[{"expression":{"id":4386,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"13635:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13641:16:27","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":3458,"src":"13635:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4383,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"13623:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13629:5:27","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":3490,"src":"13623:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":4388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13623:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4389,"nodeType":"ExpressionStatement","src":"13623:35:27"}]}},{"expression":{"id":4392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4374,"src":"13685:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4370,"id":4393,"nodeType":"Return","src":"13678:13:27"}]},"documentation":{"id":4360,"nodeType":"StructuredDocumentation","src":"12760:678:27","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":4395,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"13452:6:27","nodeType":"FunctionDefinition","parameters":{"id":4367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"b","nameLocation":"13467:1:27","nodeType":"VariableDeclaration","scope":4395,"src":"13459:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4361,"name":"uint256","nodeType":"ElementaryTypeName","src":"13459:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"e","nameLocation":"13478:1:27","nodeType":"VariableDeclaration","scope":4395,"src":"13470:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4363,"name":"uint256","nodeType":"ElementaryTypeName","src":"13470:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4366,"mutability":"mutable","name":"m","nameLocation":"13489:1:27","nodeType":"VariableDeclaration","scope":4395,"src":"13481:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13481:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13458:33:27"},"returnParameters":{"id":4370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4395,"src":"13515:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4368,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13514:9:27"},"scope":5374,"src":"13443:255:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4418,"nodeType":"Block","src":"14552:1493:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4409,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4402,"src":"14566:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14571:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14566:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4416,"nodeType":"IfStatement","src":"14562:29:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":4412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14582:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":4413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14589:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":4414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14581:10:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":4408,"id":4415,"nodeType":"Return","src":"14574:17:27"}},{"AST":{"nativeSrc":"14626:1413:27","nodeType":"YulBlock","src":"14626:1413:27","statements":[{"nativeSrc":"14640:22:27","nodeType":"YulVariableDeclaration","src":"14640:22:27","value":{"arguments":[{"kind":"number","nativeSrc":"14657:4:27","nodeType":"YulLiteral","src":"14657:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14651:5:27","nodeType":"YulIdentifier","src":"14651:5:27"},"nativeSrc":"14651:11:27","nodeType":"YulFunctionCall","src":"14651:11:27"},"variables":[{"name":"ptr","nativeSrc":"14644:3:27","nodeType":"YulTypedName","src":"14644:3:27","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"15570:3:27","nodeType":"YulIdentifier","src":"15570:3:27"},{"kind":"number","nativeSrc":"15575:4:27","nodeType":"YulLiteral","src":"15575:4:27","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15563:6:27","nodeType":"YulIdentifier","src":"15563:6:27"},"nativeSrc":"15563:17:27","nodeType":"YulFunctionCall","src":"15563:17:27"},"nativeSrc":"15563:17:27","nodeType":"YulExpressionStatement","src":"15563:17:27"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15604:3:27","nodeType":"YulIdentifier","src":"15604:3:27"},{"kind":"number","nativeSrc":"15609:4:27","nodeType":"YulLiteral","src":"15609:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15600:3:27","nodeType":"YulIdentifier","src":"15600:3:27"},"nativeSrc":"15600:14:27","nodeType":"YulFunctionCall","src":"15600:14:27"},{"kind":"number","nativeSrc":"15616:4:27","nodeType":"YulLiteral","src":"15616:4:27","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15593:6:27","nodeType":"YulIdentifier","src":"15593:6:27"},"nativeSrc":"15593:28:27","nodeType":"YulFunctionCall","src":"15593:28:27"},"nativeSrc":"15593:28:27","nodeType":"YulExpressionStatement","src":"15593:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15645:3:27","nodeType":"YulIdentifier","src":"15645:3:27"},{"kind":"number","nativeSrc":"15650:4:27","nodeType":"YulLiteral","src":"15650:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15641:3:27","nodeType":"YulIdentifier","src":"15641:3:27"},"nativeSrc":"15641:14:27","nodeType":"YulFunctionCall","src":"15641:14:27"},{"kind":"number","nativeSrc":"15657:4:27","nodeType":"YulLiteral","src":"15657:4:27","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"15634:6:27","nodeType":"YulIdentifier","src":"15634:6:27"},"nativeSrc":"15634:28:27","nodeType":"YulFunctionCall","src":"15634:28:27"},"nativeSrc":"15634:28:27","nodeType":"YulExpressionStatement","src":"15634:28:27"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15686:3:27","nodeType":"YulIdentifier","src":"15686:3:27"},{"kind":"number","nativeSrc":"15691:4:27","nodeType":"YulLiteral","src":"15691:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15682:3:27","nodeType":"YulIdentifier","src":"15682:3:27"},"nativeSrc":"15682:14:27","nodeType":"YulFunctionCall","src":"15682:14:27"},{"name":"b","nativeSrc":"15698:1:27","nodeType":"YulIdentifier","src":"15698:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15675:6:27","nodeType":"YulIdentifier","src":"15675:6:27"},"nativeSrc":"15675:25:27","nodeType":"YulFunctionCall","src":"15675:25:27"},"nativeSrc":"15675:25:27","nodeType":"YulExpressionStatement","src":"15675:25:27"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15724:3:27","nodeType":"YulIdentifier","src":"15724:3:27"},{"kind":"number","nativeSrc":"15729:4:27","nodeType":"YulLiteral","src":"15729:4:27","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15720:3:27","nodeType":"YulIdentifier","src":"15720:3:27"},"nativeSrc":"15720:14:27","nodeType":"YulFunctionCall","src":"15720:14:27"},{"name":"e","nativeSrc":"15736:1:27","nodeType":"YulIdentifier","src":"15736:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15713:6:27","nodeType":"YulIdentifier","src":"15713:6:27"},"nativeSrc":"15713:25:27","nodeType":"YulFunctionCall","src":"15713:25:27"},"nativeSrc":"15713:25:27","nodeType":"YulExpressionStatement","src":"15713:25:27"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15762:3:27","nodeType":"YulIdentifier","src":"15762:3:27"},{"kind":"number","nativeSrc":"15767:4:27","nodeType":"YulLiteral","src":"15767:4:27","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15758:3:27","nodeType":"YulIdentifier","src":"15758:3:27"},"nativeSrc":"15758:14:27","nodeType":"YulFunctionCall","src":"15758:14:27"},{"name":"m","nativeSrc":"15774:1:27","nodeType":"YulIdentifier","src":"15774:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15751:6:27","nodeType":"YulIdentifier","src":"15751:6:27"},"nativeSrc":"15751:25:27","nodeType":"YulFunctionCall","src":"15751:25:27"},"nativeSrc":"15751:25:27","nodeType":"YulExpressionStatement","src":"15751:25:27"},{"nativeSrc":"15938:57:27","nodeType":"YulAssignment","src":"15938:57:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15960:3:27","nodeType":"YulIdentifier","src":"15960:3:27"},"nativeSrc":"15960:5:27","nodeType":"YulFunctionCall","src":"15960:5:27"},{"kind":"number","nativeSrc":"15967:4:27","nodeType":"YulLiteral","src":"15967:4:27","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"15973:3:27","nodeType":"YulIdentifier","src":"15973:3:27"},{"kind":"number","nativeSrc":"15978:4:27","nodeType":"YulLiteral","src":"15978:4:27","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"15984:4:27","nodeType":"YulLiteral","src":"15984:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15990:4:27","nodeType":"YulLiteral","src":"15990:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15949:10:27","nodeType":"YulIdentifier","src":"15949:10:27"},"nativeSrc":"15949:46:27","nodeType":"YulFunctionCall","src":"15949:46:27"},"variableNames":[{"name":"success","nativeSrc":"15938:7:27","nodeType":"YulIdentifier","src":"15938:7:27"}]},{"nativeSrc":"16008:21:27","nodeType":"YulAssignment","src":"16008:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"16024:4:27","nodeType":"YulLiteral","src":"16024:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16018:5:27","nodeType":"YulIdentifier","src":"16018:5:27"},"nativeSrc":"16018:11:27","nodeType":"YulFunctionCall","src":"16018:11:27"},"variableNames":[{"name":"result","nativeSrc":"16008:6:27","nodeType":"YulIdentifier","src":"16008:6:27"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4398,"isOffset":false,"isSlot":false,"src":"15698:1:27","valueSize":1},{"declaration":4400,"isOffset":false,"isSlot":false,"src":"15736:1:27","valueSize":1},{"declaration":4402,"isOffset":false,"isSlot":false,"src":"15774:1:27","valueSize":1},{"declaration":4407,"isOffset":false,"isSlot":false,"src":"16008:6:27","valueSize":1},{"declaration":4405,"isOffset":false,"isSlot":false,"src":"15938:7:27","valueSize":1}],"flags":["memory-safe"],"id":4417,"nodeType":"InlineAssembly","src":"14601:1438:27"}]},"documentation":{"id":4396,"nodeType":"StructuredDocumentation","src":"13704:738:27","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":4419,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"14456:9:27","nodeType":"FunctionDefinition","parameters":{"id":4403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4398,"mutability":"mutable","name":"b","nameLocation":"14474:1:27","nodeType":"VariableDeclaration","scope":4419,"src":"14466:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4397,"name":"uint256","nodeType":"ElementaryTypeName","src":"14466:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4400,"mutability":"mutable","name":"e","nameLocation":"14485:1:27","nodeType":"VariableDeclaration","scope":4419,"src":"14477:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4399,"name":"uint256","nodeType":"ElementaryTypeName","src":"14477:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4402,"mutability":"mutable","name":"m","nameLocation":"14496:1:27","nodeType":"VariableDeclaration","scope":4419,"src":"14488:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4401,"name":"uint256","nodeType":"ElementaryTypeName","src":"14488:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14465:33:27"},"returnParameters":{"id":4408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4405,"mutability":"mutable","name":"success","nameLocation":"14527:7:27","nodeType":"VariableDeclaration","scope":4419,"src":"14522:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4404,"name":"bool","nodeType":"ElementaryTypeName","src":"14522:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4407,"mutability":"mutable","name":"result","nameLocation":"14544:6:27","nodeType":"VariableDeclaration","scope":4419,"src":"14536:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4406,"name":"uint256","nodeType":"ElementaryTypeName","src":"14536:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14521:30:27"},"scope":5374,"src":"14447:1598:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4454,"nodeType":"Block","src":"16242:179:27","statements":[{"assignments":[4432,4434],"declarations":[{"constant":false,"id":4432,"mutability":"mutable","name":"success","nameLocation":"16258:7:27","nodeType":"VariableDeclaration","scope":4454,"src":"16253:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4431,"name":"bool","nodeType":"ElementaryTypeName","src":"16253:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4434,"mutability":"mutable","name":"result","nameLocation":"16280:6:27","nodeType":"VariableDeclaration","scope":4454,"src":"16267:19:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4433,"name":"bytes","nodeType":"ElementaryTypeName","src":"16267:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4440,"initialValue":{"arguments":[{"id":4436,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"16300:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4437,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4424,"src":"16303:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4438,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4426,"src":"16306:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4435,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[4419,4501],"referencedDeclaration":4501,"src":"16290:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":4439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16290:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"16252:56:27"},{"condition":{"id":4442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16322:8:27","subExpression":{"id":4441,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4432,"src":"16323:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4451,"nodeType":"IfStatement","src":"16318:74:27","trueBody":{"id":4450,"nodeType":"Block","src":"16332:60:27","statements":[{"expression":{"arguments":[{"expression":{"id":4446,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"16358:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16364:16:27","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":3458,"src":"16358:22:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4443,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"16346:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$3491_$","typeString":"type(library Panic)"}},"id":4445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16352:5:27","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":3490,"src":"16346:11:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":4448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16346:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4449,"nodeType":"ExpressionStatement","src":"16346:35:27"}]}},{"expression":{"id":4452,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"16408:6:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":4430,"id":4453,"nodeType":"Return","src":"16401:13:27"}]},"documentation":{"id":4420,"nodeType":"StructuredDocumentation","src":"16051:85:27","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":4455,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"16150:6:27","nodeType":"FunctionDefinition","parameters":{"id":4427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4422,"mutability":"mutable","name":"b","nameLocation":"16170:1:27","nodeType":"VariableDeclaration","scope":4455,"src":"16157:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4421,"name":"bytes","nodeType":"ElementaryTypeName","src":"16157:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4424,"mutability":"mutable","name":"e","nameLocation":"16186:1:27","nodeType":"VariableDeclaration","scope":4455,"src":"16173:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4423,"name":"bytes","nodeType":"ElementaryTypeName","src":"16173:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4426,"mutability":"mutable","name":"m","nameLocation":"16202:1:27","nodeType":"VariableDeclaration","scope":4455,"src":"16189:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4425,"name":"bytes","nodeType":"ElementaryTypeName","src":"16189:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16156:48:27"},"returnParameters":{"id":4430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4429,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4455,"src":"16228:12:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4428,"name":"bytes","nodeType":"ElementaryTypeName","src":"16228:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16227:14:27"},"scope":5374,"src":"16141:280:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4500,"nodeType":"Block","src":"16675:771:27","statements":[{"condition":{"arguments":[{"id":4470,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"16700:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4469,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"16689:10:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16689:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4479,"nodeType":"IfStatement","src":"16685:47:27","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":4472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16712:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":4475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16729:1:27","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":4474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16719:9:27","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":4473,"name":"bytes","nodeType":"ElementaryTypeName","src":"16723:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":4476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16719:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":4477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16711:21:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":4468,"id":4478,"nodeType":"Return","src":"16704:28:27"}},{"assignments":[4481],"declarations":[{"constant":false,"id":4481,"mutability":"mutable","name":"mLen","nameLocation":"16751:4:27","nodeType":"VariableDeclaration","scope":4500,"src":"16743:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4480,"name":"uint256","nodeType":"ElementaryTypeName","src":"16743:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4484,"initialValue":{"expression":{"id":4482,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"16758:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16760:6:27","memberName":"length","nodeType":"MemberAccess","src":"16758:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16743:23:27"},{"expression":{"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4485,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4467,"src":"16848:6:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4488,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4458,"src":"16874:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16876:6:27","memberName":"length","nodeType":"MemberAccess","src":"16874:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4490,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4460,"src":"16884:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16886:6:27","memberName":"length","nodeType":"MemberAccess","src":"16884:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4492,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"16894:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4493,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4458,"src":"16900:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4494,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4460,"src":"16903:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4495,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"16906:1:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4486,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16857:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16861:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"16857:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16857:51:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16848:60:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4498,"nodeType":"ExpressionStatement","src":"16848:60:27"},{"AST":{"nativeSrc":"16944:496:27","nodeType":"YulBlock","src":"16944:496:27","statements":[{"nativeSrc":"16958:32:27","nodeType":"YulVariableDeclaration","src":"16958:32:27","value":{"arguments":[{"name":"result","nativeSrc":"16977:6:27","nodeType":"YulIdentifier","src":"16977:6:27"},{"kind":"number","nativeSrc":"16985:4:27","nodeType":"YulLiteral","src":"16985:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16973:3:27","nodeType":"YulIdentifier","src":"16973:3:27"},"nativeSrc":"16973:17:27","nodeType":"YulFunctionCall","src":"16973:17:27"},"variables":[{"name":"dataPtr","nativeSrc":"16962:7:27","nodeType":"YulTypedName","src":"16962:7:27","type":""}]},{"nativeSrc":"17080:73:27","nodeType":"YulAssignment","src":"17080:73:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17102:3:27","nodeType":"YulIdentifier","src":"17102:3:27"},"nativeSrc":"17102:5:27","nodeType":"YulFunctionCall","src":"17102:5:27"},{"kind":"number","nativeSrc":"17109:4:27","nodeType":"YulLiteral","src":"17109:4:27","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"17115:7:27","nodeType":"YulIdentifier","src":"17115:7:27"},{"arguments":[{"name":"result","nativeSrc":"17130:6:27","nodeType":"YulIdentifier","src":"17130:6:27"}],"functionName":{"name":"mload","nativeSrc":"17124:5:27","nodeType":"YulIdentifier","src":"17124:5:27"},"nativeSrc":"17124:13:27","nodeType":"YulFunctionCall","src":"17124:13:27"},{"name":"dataPtr","nativeSrc":"17139:7:27","nodeType":"YulIdentifier","src":"17139:7:27"},{"name":"mLen","nativeSrc":"17148:4:27","nodeType":"YulIdentifier","src":"17148:4:27"}],"functionName":{"name":"staticcall","nativeSrc":"17091:10:27","nodeType":"YulIdentifier","src":"17091:10:27"},"nativeSrc":"17091:62:27","nodeType":"YulFunctionCall","src":"17091:62:27"},"variableNames":[{"name":"success","nativeSrc":"17080:7:27","nodeType":"YulIdentifier","src":"17080:7:27"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"17309:6:27","nodeType":"YulIdentifier","src":"17309:6:27"},{"name":"mLen","nativeSrc":"17317:4:27","nodeType":"YulIdentifier","src":"17317:4:27"}],"functionName":{"name":"mstore","nativeSrc":"17302:6:27","nodeType":"YulIdentifier","src":"17302:6:27"},"nativeSrc":"17302:20:27","nodeType":"YulFunctionCall","src":"17302:20:27"},"nativeSrc":"17302:20:27","nodeType":"YulExpressionStatement","src":"17302:20:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17405:4:27","nodeType":"YulLiteral","src":"17405:4:27","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"17415:7:27","nodeType":"YulIdentifier","src":"17415:7:27"},{"name":"mLen","nativeSrc":"17424:4:27","nodeType":"YulIdentifier","src":"17424:4:27"}],"functionName":{"name":"add","nativeSrc":"17411:3:27","nodeType":"YulIdentifier","src":"17411:3:27"},"nativeSrc":"17411:18:27","nodeType":"YulFunctionCall","src":"17411:18:27"}],"functionName":{"name":"mstore","nativeSrc":"17398:6:27","nodeType":"YulIdentifier","src":"17398:6:27"},"nativeSrc":"17398:32:27","nodeType":"YulFunctionCall","src":"17398:32:27"},"nativeSrc":"17398:32:27","nodeType":"YulExpressionStatement","src":"17398:32:27"}]},"evmVersion":"paris","externalReferences":[{"declaration":4481,"isOffset":false,"isSlot":false,"src":"17148:4:27","valueSize":1},{"declaration":4481,"isOffset":false,"isSlot":false,"src":"17317:4:27","valueSize":1},{"declaration":4481,"isOffset":false,"isSlot":false,"src":"17424:4:27","valueSize":1},{"declaration":4467,"isOffset":false,"isSlot":false,"src":"16977:6:27","valueSize":1},{"declaration":4467,"isOffset":false,"isSlot":false,"src":"17130:6:27","valueSize":1},{"declaration":4467,"isOffset":false,"isSlot":false,"src":"17309:6:27","valueSize":1},{"declaration":4465,"isOffset":false,"isSlot":false,"src":"17080:7:27","valueSize":1}],"flags":["memory-safe"],"id":4499,"nodeType":"InlineAssembly","src":"16919:521:27"}]},"documentation":{"id":4456,"nodeType":"StructuredDocumentation","src":"16427:88:27","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":4501,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"16529:9:27","nodeType":"FunctionDefinition","parameters":{"id":4463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"mutability":"mutable","name":"b","nameLocation":"16561:1:27","nodeType":"VariableDeclaration","scope":4501,"src":"16548:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4457,"name":"bytes","nodeType":"ElementaryTypeName","src":"16548:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4460,"mutability":"mutable","name":"e","nameLocation":"16585:1:27","nodeType":"VariableDeclaration","scope":4501,"src":"16572:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4459,"name":"bytes","nodeType":"ElementaryTypeName","src":"16572:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4462,"mutability":"mutable","name":"m","nameLocation":"16609:1:27","nodeType":"VariableDeclaration","scope":4501,"src":"16596:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4461,"name":"bytes","nodeType":"ElementaryTypeName","src":"16596:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16538:78:27"},"returnParameters":{"id":4468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4465,"mutability":"mutable","name":"success","nameLocation":"16645:7:27","nodeType":"VariableDeclaration","scope":4501,"src":"16640:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4464,"name":"bool","nodeType":"ElementaryTypeName","src":"16640:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4467,"mutability":"mutable","name":"result","nameLocation":"16667:6:27","nodeType":"VariableDeclaration","scope":4501,"src":"16654:19:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4466,"name":"bytes","nodeType":"ElementaryTypeName","src":"16654:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16639:35:27"},"scope":5374,"src":"16520:926:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4533,"nodeType":"Block","src":"17601:176:27","statements":[{"body":{"id":4529,"nodeType":"Block","src":"17658:92:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":4524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":4520,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"17676:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4522,"indexExpression":{"id":4521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4510,"src":"17686:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:12:27","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17692:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17676:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4528,"nodeType":"IfStatement","src":"17672:68:27","trueBody":{"id":4527,"nodeType":"Block","src":"17695:45:27","statements":[{"expression":{"hexValue":"66616c7365","id":4525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17720:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4508,"id":4526,"nodeType":"Return","src":"17713:12:27"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4510,"src":"17631:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4514,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"17635:9:27","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17645:6:27","memberName":"length","nodeType":"MemberAccess","src":"17635:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17631:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4530,"initializationExpression":{"assignments":[4510],"declarations":[{"constant":false,"id":4510,"mutability":"mutable","name":"i","nameLocation":"17624:1:27","nodeType":"VariableDeclaration","scope":4530,"src":"17616:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4509,"name":"uint256","nodeType":"ElementaryTypeName","src":"17616:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4512,"initialValue":{"hexValue":"30","id":4511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17628:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17616:13:27"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17653:3:27","subExpression":{"id":4517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4510,"src":"17655:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4519,"nodeType":"ExpressionStatement","src":"17653:3:27"},"nodeType":"ForStatement","src":"17611:139:27"},{"expression":{"hexValue":"74727565","id":4531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17766:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4508,"id":4532,"nodeType":"Return","src":"17759:11:27"}]},"documentation":{"id":4502,"nodeType":"StructuredDocumentation","src":"17452:72:27","text":" @dev Returns whether the provided byte array is zero."},"id":4534,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"17538:10:27","nodeType":"FunctionDefinition","parameters":{"id":4505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4504,"mutability":"mutable","name":"byteArray","nameLocation":"17562:9:27","nodeType":"VariableDeclaration","scope":4534,"src":"17549:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4503,"name":"bytes","nodeType":"ElementaryTypeName","src":"17549:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17548:24:27"},"returnParameters":{"id":4508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4534,"src":"17595:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4506,"name":"bool","nodeType":"ElementaryTypeName","src":"17595:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17594:6:27"},"scope":5374,"src":"17529:248:27","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4752,"nodeType":"Block","src":"18137:5124:27","statements":[{"id":4751,"nodeType":"UncheckedBlock","src":"18147:5108:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4542,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"18241:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":4543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18246:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18241:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4548,"nodeType":"IfStatement","src":"18237:53:27","trueBody":{"id":4547,"nodeType":"Block","src":"18249:41:27","statements":[{"expression":{"id":4545,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"18274:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4541,"id":4546,"nodeType":"Return","src":"18267:8:27"}]}},{"assignments":[4550],"declarations":[{"constant":false,"id":4550,"mutability":"mutable","name":"aa","nameLocation":"19225:2:27","nodeType":"VariableDeclaration","scope":4751,"src":"19217:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4549,"name":"uint256","nodeType":"ElementaryTypeName","src":"19217:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4552,"initialValue":{"id":4551,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"19230:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19217:14:27"},{"assignments":[4554],"declarations":[{"constant":false,"id":4554,"mutability":"mutable","name":"xn","nameLocation":"19253:2:27","nodeType":"VariableDeclaration","scope":4751,"src":"19245:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4553,"name":"uint256","nodeType":"ElementaryTypeName","src":"19245:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4556,"initialValue":{"hexValue":"31","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19258:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"19245:14:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4557,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19278:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19285:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19290:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19285:8:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":4561,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19284:10:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"19278:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4572,"nodeType":"IfStatement","src":"19274:92:27","trueBody":{"id":4571,"nodeType":"Block","src":"19296:70:27","statements":[{"expression":{"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4563,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19314:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19321:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19314:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4566,"nodeType":"ExpressionStatement","src":"19314:10:27"},{"expression":{"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4567,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19342:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":4568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19349:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19342:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4570,"nodeType":"ExpressionStatement","src":"19342:9:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4573,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19383:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":4576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19390:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":4575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19395:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19390:7:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":4577,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19389:9:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"19383:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4588,"nodeType":"IfStatement","src":"19379:90:27","trueBody":{"id":4587,"nodeType":"Block","src":"19400:69:27","statements":[{"expression":{"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4579,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19418:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":4580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19425:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"19418:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4582,"nodeType":"ExpressionStatement","src":"19418:9:27"},{"expression":{"id":4585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4583,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19445:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":4584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19452:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19445:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4586,"nodeType":"ExpressionStatement","src":"19445:9:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4589,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19486:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":4592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19493:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":4591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19498:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19493:7:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":4593,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19492:9:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"19486:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4604,"nodeType":"IfStatement","src":"19482:90:27","trueBody":{"id":4603,"nodeType":"Block","src":"19503:69:27","statements":[{"expression":{"id":4597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4595,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19521:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":4596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19528:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19521:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4598,"nodeType":"ExpressionStatement","src":"19521:9:27"},{"expression":{"id":4601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4599,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19548:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":4600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19555:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19548:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4602,"nodeType":"ExpressionStatement","src":"19548:9:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4605,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19589:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19596:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19601:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19596:7:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":4609,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19595:9:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"19589:15:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4620,"nodeType":"IfStatement","src":"19585:89:27","trueBody":{"id":4619,"nodeType":"Block","src":"19606:68:27","statements":[{"expression":{"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4611,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19624:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":4612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19631:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"19624:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4614,"nodeType":"ExpressionStatement","src":"19624:9:27"},{"expression":{"id":4617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4615,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19651:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":4616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19658:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19651:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4618,"nodeType":"ExpressionStatement","src":"19651:8:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4621,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19691:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":4624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19698:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19703:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19698:6:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":4625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19697:8:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"19691:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4636,"nodeType":"IfStatement","src":"19687:87:27","trueBody":{"id":4635,"nodeType":"Block","src":"19707:67:27","statements":[{"expression":{"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4627,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19725:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19732:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19725:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4630,"nodeType":"ExpressionStatement","src":"19725:8:27"},{"expression":{"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4631,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19751:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":4632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19758:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19751:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4634,"nodeType":"ExpressionStatement","src":"19751:8:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4637,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19791:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":4640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19798:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19803:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19798:6:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":4641,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19797:8:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"19791:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4652,"nodeType":"IfStatement","src":"19787:87:27","trueBody":{"id":4651,"nodeType":"Block","src":"19807:67:27","statements":[{"expression":{"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4643,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19825:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":4644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19832:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19825:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4646,"nodeType":"ExpressionStatement","src":"19825:8:27"},{"expression":{"id":4649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4647,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19851:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":4648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19858:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19851:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4650,"nodeType":"ExpressionStatement","src":"19851:8:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4653,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4550,"src":"19891:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":4656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19898:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":4655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19903:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19898:6:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":4657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19897:8:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"19891:14:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4664,"nodeType":"IfStatement","src":"19887:61:27","trueBody":{"id":4663,"nodeType":"Block","src":"19907:41:27","statements":[{"expression":{"id":4661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4659,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"19925:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":4660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19932:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19925:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4662,"nodeType":"ExpressionStatement","src":"19925:8:27"}]}},{"expression":{"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4665,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"20368:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":4666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20374:1:27","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4667,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"20378:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20374:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20373:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20385:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20373:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20368:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4673,"nodeType":"ExpressionStatement","src":"20368:18:27"},{"expression":{"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4674,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22273:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4675,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22279:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4676,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22284:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4677,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22288:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22284:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22279:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4680,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22278:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22295:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22278:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22273:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4684,"nodeType":"ExpressionStatement","src":"22273:23:27"},{"expression":{"id":4694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4685,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22382:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4686,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22388:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4687,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22393:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4688,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22397:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22393:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22388:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4691,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22387:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22404:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22387:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22382:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4695,"nodeType":"ExpressionStatement","src":"22382:23:27"},{"expression":{"id":4705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4696,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22493:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4697,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22499:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4698,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22504:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4699,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22508:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22504:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22499:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4702,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22498:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22515:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22498:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22493:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4706,"nodeType":"ExpressionStatement","src":"22493:23:27"},{"expression":{"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4707,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22602:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4708,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22608:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4709,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22613:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4710,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22617:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22613:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22608:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22607:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22624:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22607:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22602:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4717,"nodeType":"ExpressionStatement","src":"22602:23:27"},{"expression":{"id":4727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4718,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22712:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4719,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22718:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4720,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22723:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4721,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22727:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22723:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22718:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4724,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22717:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22734:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22717:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22712:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4728,"nodeType":"ExpressionStatement","src":"22712:23:27"},{"expression":{"id":4738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4729,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22822:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4730,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22828:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4731,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"22833:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4732,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"22837:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22833:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22828:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4735,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22827:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22844:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22827:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22822:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4739,"nodeType":"ExpressionStatement","src":"22822:23:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4740,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"23211:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4743,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"23232:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4744,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"23237:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4745,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"23241:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23237:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23232:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4741,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"23216:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23225:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"23216:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23216:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23211:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4541,"id":4750,"nodeType":"Return","src":"23204:40:27"}]}]},"documentation":{"id":4535,"nodeType":"StructuredDocumentation","src":"17783:292:27","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 This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":4753,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"18089:4:27","nodeType":"FunctionDefinition","parameters":{"id":4538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4537,"mutability":"mutable","name":"a","nameLocation":"18102:1:27","nodeType":"VariableDeclaration","scope":4753,"src":"18094:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4536,"name":"uint256","nodeType":"ElementaryTypeName","src":"18094:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18093:11:27"},"returnParameters":{"id":4541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4753,"src":"18128:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4539,"name":"uint256","nodeType":"ElementaryTypeName","src":"18128:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18127:9:27"},"scope":5374,"src":"18080:5181:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4786,"nodeType":"Block","src":"23434:171:27","statements":[{"id":4785,"nodeType":"UncheckedBlock","src":"23444:155:27","statements":[{"assignments":[4765],"declarations":[{"constant":false,"id":4765,"mutability":"mutable","name":"result","nameLocation":"23476:6:27","nodeType":"VariableDeclaration","scope":4785,"src":"23468:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4764,"name":"uint256","nodeType":"ElementaryTypeName","src":"23468:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4769,"initialValue":{"arguments":[{"id":4767,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4756,"src":"23490:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4766,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[4753,4787],"referencedDeclaration":4753,"src":"23485:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23485:7:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23468:24:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4770,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"23513:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4774,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4759,"src":"23555:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":4773,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"23538:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23538:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4776,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"23568:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4777,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"23577:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23568:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4779,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4756,"src":"23586:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23568:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23538:49:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4771,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"23522:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23531:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"23522:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23522:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23513:75:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4763,"id":4784,"nodeType":"Return","src":"23506:82:27"}]}]},"documentation":{"id":4754,"nodeType":"StructuredDocumentation","src":"23267:86:27","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":4787,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"23367:4:27","nodeType":"FunctionDefinition","parameters":{"id":4760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4756,"mutability":"mutable","name":"a","nameLocation":"23380:1:27","nodeType":"VariableDeclaration","scope":4787,"src":"23372:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4755,"name":"uint256","nodeType":"ElementaryTypeName","src":"23372:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4759,"mutability":"mutable","name":"rounding","nameLocation":"23392:8:27","nodeType":"VariableDeclaration","scope":4787,"src":"23383:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":4758,"nodeType":"UserDefinedTypeName","pathNode":{"id":4757,"name":"Rounding","nameLocations":["23383:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"23383:8:27"},"referencedDeclaration":3780,"src":"23383:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"23371:30:27"},"returnParameters":{"id":4763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4787,"src":"23425:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4761,"name":"uint256","nodeType":"ElementaryTypeName","src":"23425:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23424:9:27"},"scope":5374,"src":"23358:247:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4982,"nodeType":"Block","src":"23796:981:27","statements":[{"assignments":[4796],"declarations":[{"constant":false,"id":4796,"mutability":"mutable","name":"result","nameLocation":"23814:6:27","nodeType":"VariableDeclaration","scope":4982,"src":"23806:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4795,"name":"uint256","nodeType":"ElementaryTypeName","src":"23806:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4798,"initialValue":{"hexValue":"30","id":4797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23823:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23806:18:27"},{"assignments":[4800],"declarations":[{"constant":false,"id":4800,"mutability":"mutable","name":"exp","nameLocation":"23842:3:27","nodeType":"VariableDeclaration","scope":4982,"src":"23834:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4799,"name":"uint256","nodeType":"ElementaryTypeName","src":"23834:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4801,"nodeType":"VariableDeclarationStatement","src":"23834:11:27"},{"id":4979,"nodeType":"UncheckedBlock","src":"23855:893:27","statements":[{"expression":{"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4802,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"23879:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313238","id":4803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23885:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4806,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"23907:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":4812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23916:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23921:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"23916:8:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":4810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23915:10:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23928:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23915:14:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"23907:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4804,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"23891:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23900:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"23891:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23891:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23885:45:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23879:51:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4817,"nodeType":"ExpressionStatement","src":"23879:51:27"},{"expression":{"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4818,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"23944:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4819,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"23954:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23944:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4821,"nodeType":"ExpressionStatement","src":"23944:13:27"},{"expression":{"id":4824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4822,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"23971:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4823,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"23981:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23971:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4825,"nodeType":"ExpressionStatement","src":"23971:13:27"},{"expression":{"id":4840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4826,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"23999:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3634","id":4827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24005:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24026:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":4836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":4833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24035:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":4832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24040:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24035:7:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":4834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24034:9:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24046:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24034:13:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"24026:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4828,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24010:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24019:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24010:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24010:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24005:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23999:49:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4841,"nodeType":"ExpressionStatement","src":"23999:49:27"},{"expression":{"id":4844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4842,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24062:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4843,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24072:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24062:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4845,"nodeType":"ExpressionStatement","src":"24062:13:27"},{"expression":{"id":4848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4846,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24089:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4847,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24099:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24089:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4849,"nodeType":"ExpressionStatement","src":"24089:13:27"},{"expression":{"id":4864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4850,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24117:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":4851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24123:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24144:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":4860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":4857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24153:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":4856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24158:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24153:7:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":4858,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24152:9:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24164:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24152:13:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"24144:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4852,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24128:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24137:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24128:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24128:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24123:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24117:49:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4865,"nodeType":"ExpressionStatement","src":"24117:49:27"},{"expression":{"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4866,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24180:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4867,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24190:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24180:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4869,"nodeType":"ExpressionStatement","src":"24180:13:27"},{"expression":{"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24207:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4871,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24217:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24207:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4873,"nodeType":"ExpressionStatement","src":"24207:13:27"},{"expression":{"id":4888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4874,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24235:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":4875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24241:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4878,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24262:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":4884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24271:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":4880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24276:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"24271:7:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":4882,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24270:9:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24282:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24270:13:27","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"24262:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4876,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24246:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24255:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24246:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24246:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24241:43:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24235:49:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4889,"nodeType":"ExpressionStatement","src":"24235:49:27"},{"expression":{"id":4892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24298:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4891,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24308:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24298:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4893,"nodeType":"ExpressionStatement","src":"24298:13:27"},{"expression":{"id":4896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4894,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24325:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4895,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24335:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24325:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4897,"nodeType":"ExpressionStatement","src":"24325:13:27"},{"expression":{"id":4912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4898,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24353:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":4899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24359:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4902,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24379:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":4908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":4905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24388:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":4904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24393:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"24388:6:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":4906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24387:8:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24398:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24387:12:27","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"24379:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4900,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24363:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24372:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24363:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24363:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24359:41:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24353:47:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4913,"nodeType":"ExpressionStatement","src":"24353:47:27"},{"expression":{"id":4916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4914,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24414:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4915,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24424:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24414:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4917,"nodeType":"ExpressionStatement","src":"24414:13:27"},{"expression":{"id":4920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4918,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24441:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4919,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24451:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24441:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4921,"nodeType":"ExpressionStatement","src":"24441:13:27"},{"expression":{"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4922,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24469:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":4923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24475:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4926,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24495:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"id":4932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":4929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24504:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":4928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24509:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"24504:6:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":4930,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24503:8:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24514:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24503:12:27","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}},"src":"24495:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4924,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24479:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24488:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24479:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24479:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24475:41:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24469:47:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4937,"nodeType":"ExpressionStatement","src":"24469:47:27"},{"expression":{"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4938,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24530:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4939,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24540:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24530:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4941,"nodeType":"ExpressionStatement","src":"24530:13:27"},{"expression":{"id":4944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4942,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24557:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4943,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24567:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24557:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4945,"nodeType":"ExpressionStatement","src":"24557:13:27"},{"expression":{"id":4960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4946,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24585:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24591:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24611:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"id":4956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":4953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24620:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":4952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24625:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"24620:6:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":4954,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"24619:8:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24630:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24619:12:27","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}},"src":"24611:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4948,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24595:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24604:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24595:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24595:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24591:41:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24585:47:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4961,"nodeType":"ExpressionStatement","src":"24585:47:27"},{"expression":{"id":4964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24646:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4963,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24656:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24646:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4965,"nodeType":"ExpressionStatement","src":"24646:13:27"},{"expression":{"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4966,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24673:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4967,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4800,"src":"24683:3:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24673:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4969,"nodeType":"ExpressionStatement","src":"24673:13:27"},{"expression":{"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4970,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24701:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"24727:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24735:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24727:9:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4971,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"24711:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24720:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"24711:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24711:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24701:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4978,"nodeType":"ExpressionStatement","src":"24701:36:27"}]},{"expression":{"id":4980,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"24764:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4794,"id":4981,"nodeType":"Return","src":"24757:13:27"}]},"documentation":{"id":4788,"nodeType":"StructuredDocumentation","src":"23611:119:27","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4983,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"23744:4:27","nodeType":"FunctionDefinition","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4790,"mutability":"mutable","name":"value","nameLocation":"23757:5:27","nodeType":"VariableDeclaration","scope":4983,"src":"23749:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4789,"name":"uint256","nodeType":"ElementaryTypeName","src":"23749:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23748:15:27"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4983,"src":"23787:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4792,"name":"uint256","nodeType":"ElementaryTypeName","src":"23787:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23786:9:27"},"scope":5374,"src":"23735:1042:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5016,"nodeType":"Block","src":"25010:175:27","statements":[{"id":5015,"nodeType":"UncheckedBlock","src":"25020:159:27","statements":[{"assignments":[4995],"declarations":[{"constant":false,"id":4995,"mutability":"mutable","name":"result","nameLocation":"25052:6:27","nodeType":"VariableDeclaration","scope":5015,"src":"25044:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4994,"name":"uint256","nodeType":"ElementaryTypeName","src":"25044:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4999,"initialValue":{"arguments":[{"id":4997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25066:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4996,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4983,5017],"referencedDeclaration":4983,"src":"25061:4:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25061:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25044:28:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5000,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4995,"src":"25093:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5004,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4989,"src":"25135:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":5003,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"25118:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25118:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25148:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":5007,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4995,"src":"25153:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25148:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5009,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4986,"src":"25162:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25148:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25118:49:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5001,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"25102:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25111:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"25102:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25102:66:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25093:75:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4993,"id":5014,"nodeType":"Return","src":"25086:82:27"}]}]},"documentation":{"id":4984,"nodeType":"StructuredDocumentation","src":"24783:142:27","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5017,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"24939:4:27","nodeType":"FunctionDefinition","parameters":{"id":4990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4986,"mutability":"mutable","name":"value","nameLocation":"24952:5:27","nodeType":"VariableDeclaration","scope":5017,"src":"24944:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4985,"name":"uint256","nodeType":"ElementaryTypeName","src":"24944:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4989,"mutability":"mutable","name":"rounding","nameLocation":"24968:8:27","nodeType":"VariableDeclaration","scope":5017,"src":"24959:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":4988,"nodeType":"UserDefinedTypeName","pathNode":{"id":4987,"name":"Rounding","nameLocations":["24959:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"24959:8:27"},"referencedDeclaration":3780,"src":"24959:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"24943:34:27"},"returnParameters":{"id":4993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5017,"src":"25001:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4991,"name":"uint256","nodeType":"ElementaryTypeName","src":"25001:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25000:9:27"},"scope":5374,"src":"24930:255:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5145,"nodeType":"Block","src":"25378:854:27","statements":[{"assignments":[5026],"declarations":[{"constant":false,"id":5026,"mutability":"mutable","name":"result","nameLocation":"25396:6:27","nodeType":"VariableDeclaration","scope":5145,"src":"25388:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5025,"name":"uint256","nodeType":"ElementaryTypeName","src":"25388:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5028,"initialValue":{"hexValue":"30","id":5027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25405:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"25388:18:27"},{"id":5142,"nodeType":"UncheckedBlock","src":"25416:787:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25444:5:27","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":5032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25453:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":5031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25459:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25453:8:27","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"25444:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5045,"nodeType":"IfStatement","src":"25440:103:27","trueBody":{"id":5044,"nodeType":"Block","src":"25463:80:27","statements":[{"expression":{"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25481:5:27","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":5037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25490:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":5036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25496:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25490:8:27","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"25481:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5039,"nodeType":"ExpressionStatement","src":"25481:17:27"},{"expression":{"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5040,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"25516:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":5041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25526:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"25516:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5043,"nodeType":"ExpressionStatement","src":"25516:12:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5046,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25560:5:27","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":5049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25569:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":5048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25575:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25569:8:27","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"25560:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5062,"nodeType":"IfStatement","src":"25556:103:27","trueBody":{"id":5061,"nodeType":"Block","src":"25579:80:27","statements":[{"expression":{"id":5055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5051,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25597:5:27","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":5054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25606:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":5053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25612:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25606:8:27","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"25597:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5056,"nodeType":"ExpressionStatement","src":"25597:17:27"},{"expression":{"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"25632:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":5058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25642:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"25632:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5060,"nodeType":"ExpressionStatement","src":"25632:12:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5063,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25676:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":5066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25685:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":5065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25691:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25685:8:27","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25676:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5079,"nodeType":"IfStatement","src":"25672:103:27","trueBody":{"id":5078,"nodeType":"Block","src":"25695:80:27","statements":[{"expression":{"id":5072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5068,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25713:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":5071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25722:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":5070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25728:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25722:8:27","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25713:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5073,"nodeType":"ExpressionStatement","src":"25713:17:27"},{"expression":{"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5074,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"25748:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":5075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25758:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25748:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5077,"nodeType":"ExpressionStatement","src":"25748:12:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5080,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25792:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":5083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25801:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":5082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25807:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25801:7:27","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25792:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5096,"nodeType":"IfStatement","src":"25788:100:27","trueBody":{"id":5095,"nodeType":"Block","src":"25810:78:27","statements":[{"expression":{"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25828:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":5088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25837:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":5087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25843:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25837:7:27","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25828:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5090,"nodeType":"ExpressionStatement","src":"25828:16:27"},{"expression":{"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5091,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"25862:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":5092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25872:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25862:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5094,"nodeType":"ExpressionStatement","src":"25862:11:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25905:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":5100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25914:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":5099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25920:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25914:7:27","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25905:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5113,"nodeType":"IfStatement","src":"25901:100:27","trueBody":{"id":5112,"nodeType":"Block","src":"25923:78:27","statements":[{"expression":{"id":5106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5102,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"25941:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":5105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25950:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":5104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25956:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25950:7:27","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25941:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5107,"nodeType":"ExpressionStatement","src":"25941:16:27"},{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5108,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"25975:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":5109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25985:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25975:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5111,"nodeType":"ExpressionStatement","src":"25975:11:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5114,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"26018:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":5117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26027:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26033:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26027:7:27","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"26018:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5130,"nodeType":"IfStatement","src":"26014:100:27","trueBody":{"id":5129,"nodeType":"Block","src":"26036:78:27","statements":[{"expression":{"id":5123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"26054:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":5122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26063:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":5121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26069:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26063:7:27","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"26054:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5124,"nodeType":"ExpressionStatement","src":"26054:16:27"},{"expression":{"id":5127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5125,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"26088:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":5126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26098:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26088:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5128,"nodeType":"ExpressionStatement","src":"26088:11:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"26131:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":5134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26140:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":5133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26146:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26140:7:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"26131:16:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5141,"nodeType":"IfStatement","src":"26127:66:27","trueBody":{"id":5140,"nodeType":"Block","src":"26149:44:27","statements":[{"expression":{"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5136,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"26167:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":5137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26177:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26167:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5139,"nodeType":"ExpressionStatement","src":"26167:11:27"}]}}]},{"expression":{"id":5143,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"26219:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5024,"id":5144,"nodeType":"Return","src":"26212:13:27"}]},"documentation":{"id":5018,"nodeType":"StructuredDocumentation","src":"25191:120:27","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":5146,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"25325:5:27","nodeType":"FunctionDefinition","parameters":{"id":5021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5020,"mutability":"mutable","name":"value","nameLocation":"25339:5:27","nodeType":"VariableDeclaration","scope":5146,"src":"25331:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5019,"name":"uint256","nodeType":"ElementaryTypeName","src":"25331:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25330:15:27"},"returnParameters":{"id":5024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5146,"src":"25369:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5022,"name":"uint256","nodeType":"ElementaryTypeName","src":"25369:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25368:9:27"},"scope":5374,"src":"25316:916:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5179,"nodeType":"Block","src":"26467:177:27","statements":[{"id":5178,"nodeType":"UncheckedBlock","src":"26477:161:27","statements":[{"assignments":[5158],"declarations":[{"constant":false,"id":5158,"mutability":"mutable","name":"result","nameLocation":"26509:6:27","nodeType":"VariableDeclaration","scope":5178,"src":"26501:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5157,"name":"uint256","nodeType":"ElementaryTypeName","src":"26501:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5162,"initialValue":{"arguments":[{"id":5160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5149,"src":"26524:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5159,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[5146,5180],"referencedDeclaration":5146,"src":"26518:5:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26518:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26501:29:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"26551:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5167,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5152,"src":"26593:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":5166,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"26576:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26576:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":5169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26606:2:27","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":5170,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"26612:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26606:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5149,"src":"26621:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26606:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26576:50:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5164,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"26560:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26569:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"26560:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26560:67:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26551:76:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5156,"id":5177,"nodeType":"Return","src":"26544:83:27"}]}]},"documentation":{"id":5147,"nodeType":"StructuredDocumentation","src":"26238:143:27","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5180,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"26395:5:27","nodeType":"FunctionDefinition","parameters":{"id":5153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5149,"mutability":"mutable","name":"value","nameLocation":"26409:5:27","nodeType":"VariableDeclaration","scope":5180,"src":"26401:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5148,"name":"uint256","nodeType":"ElementaryTypeName","src":"26401:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5152,"mutability":"mutable","name":"rounding","nameLocation":"26425:8:27","nodeType":"VariableDeclaration","scope":5180,"src":"26416:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":5151,"nodeType":"UserDefinedTypeName","pathNode":{"id":5150,"name":"Rounding","nameLocations":["26416:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"26416:8:27"},"referencedDeclaration":3780,"src":"26416:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"26400:34:27"},"returnParameters":{"id":5156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5180,"src":"26458:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5154,"name":"uint256","nodeType":"ElementaryTypeName","src":"26458:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26457:9:27"},"scope":5374,"src":"26386:258:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5316,"nodeType":"Block","src":"26964:674:27","statements":[{"assignments":[5189],"declarations":[{"constant":false,"id":5189,"mutability":"mutable","name":"result","nameLocation":"26982:6:27","nodeType":"VariableDeclaration","scope":5316,"src":"26974:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5188,"name":"uint256","nodeType":"ElementaryTypeName","src":"26974:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5191,"initialValue":{"hexValue":"30","id":5190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26991:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26974:18:27"},{"assignments":[5193],"declarations":[{"constant":false,"id":5193,"mutability":"mutable","name":"isGt","nameLocation":"27010:4:27","nodeType":"VariableDeclaration","scope":5316,"src":"27002:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5192,"name":"uint256","nodeType":"ElementaryTypeName","src":"27002:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5194,"nodeType":"VariableDeclarationStatement","src":"27002:12:27"},{"id":5313,"nodeType":"UncheckedBlock","src":"27024:585:27","statements":[{"expression":{"id":5207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5195,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27048:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5198,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27071:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":5204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27080:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27085:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"27080:8:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":5202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27079:10:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27092:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27079:14:27","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"27071:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5196,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27055:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27064:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27055:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27055:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27048:46:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5208,"nodeType":"ExpressionStatement","src":"27048:46:27"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27108:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5210,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27118:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313238","id":5211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27125:3:27","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"27118:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27108:20:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5214,"nodeType":"ExpressionStatement","src":"27108:20:27"},{"expression":{"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5215,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27142:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5216,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27152:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":5217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27159:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27152:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27142:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5220,"nodeType":"ExpressionStatement","src":"27142:19:27"},{"expression":{"id":5233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5221,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27176:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5224,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27199:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":5227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27208:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27213:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"27208:7:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":5228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27207:9:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27219:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27207:13:27","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"27199:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5222,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27183:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27192:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27183:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27183:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27176:45:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5234,"nodeType":"ExpressionStatement","src":"27176:45:27"},{"expression":{"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27235:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5236,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27245:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":5237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27252:2:27","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"27245:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27235:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5240,"nodeType":"ExpressionStatement","src":"27235:19:27"},{"expression":{"id":5245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5241,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27268:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5242,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27278:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":5243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27285:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"27278:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27268:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5246,"nodeType":"ExpressionStatement","src":"27268:18:27"},{"expression":{"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5247,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27301:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5250,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27324:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":5256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":5253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27333:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":5252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27338:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"27333:7:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":5254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27332:9:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27344:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27332:13:27","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"27324:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5248,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27308:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27317:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27308:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27308:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27301:45:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5260,"nodeType":"ExpressionStatement","src":"27301:45:27"},{"expression":{"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5261,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27360:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5262,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27370:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":5263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27377:2:27","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"27370:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27360:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5266,"nodeType":"ExpressionStatement","src":"27360:19:27"},{"expression":{"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5267,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27393:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5268,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27403:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"34","id":5269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27410:1:27","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27403:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27393:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5272,"nodeType":"ExpressionStatement","src":"27393:18:27"},{"expression":{"id":5285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5273,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27426:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5276,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27449:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":5282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":5279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27458:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":5278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27463:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27458:7:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":5280,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27457:9:27","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27469:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27457:13:27","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"27449:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5274,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27433:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27442:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27433:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27433:38:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27426:45:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5286,"nodeType":"ExpressionStatement","src":"27426:45:27"},{"expression":{"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5287,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27485:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5288,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27495:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":5289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27502:2:27","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"27495:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27485:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5292,"nodeType":"ExpressionStatement","src":"27485:19:27"},{"expression":{"id":5297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5293,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27518:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5294,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5193,"src":"27528:4:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":5295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27535:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"27528:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27518:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5298,"nodeType":"ExpressionStatement","src":"27518:18:27"},{"expression":{"id":5311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5299,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27551:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5302,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"27577:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":5308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":5305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27586:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":5304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27591:1:27","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"27586:6:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":5306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27585:8:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":5307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27596:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27585:12:27","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"27577:20:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5300,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27561:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27570:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27561:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27561:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27551:47:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5312,"nodeType":"ExpressionStatement","src":"27551:47:27"}]},{"expression":{"id":5314,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5189,"src":"27625:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5187,"id":5315,"nodeType":"Return","src":"27618:13:27"}]},"documentation":{"id":5181,"nodeType":"StructuredDocumentation","src":"26650:246:27","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":5317,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"26910:6:27","nodeType":"FunctionDefinition","parameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5183,"mutability":"mutable","name":"value","nameLocation":"26925:5:27","nodeType":"VariableDeclaration","scope":5317,"src":"26917:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"26917:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26916:15:27"},"returnParameters":{"id":5187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5186,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5317,"src":"26955:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5185,"name":"uint256","nodeType":"ElementaryTypeName","src":"26955:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26954:9:27"},"scope":5374,"src":"26901:737:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5353,"nodeType":"Block","src":"27875:184:27","statements":[{"id":5352,"nodeType":"UncheckedBlock","src":"27885:168:27","statements":[{"assignments":[5329],"declarations":[{"constant":false,"id":5329,"mutability":"mutable","name":"result","nameLocation":"27917:6:27","nodeType":"VariableDeclaration","scope":5352,"src":"27909:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5328,"name":"uint256","nodeType":"ElementaryTypeName","src":"27909:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5333,"initialValue":{"arguments":[{"id":5331,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5320,"src":"27933:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5330,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[5317,5354],"referencedDeclaration":5317,"src":"27926:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27926:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27909:30:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5334,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"27960:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5338,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"28002:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":5337,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"27985:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$3780_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":5339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27985:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:1:27","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":5343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5341,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5329,"src":"28021:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":5342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28031:1:27","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"28021:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5344,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28020:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28015:18:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5320,"src":"28036:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28015:26:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27985:56:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5335,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"27969:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$7139_$","typeString":"type(library SafeCast)"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27978:6:27","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":7138,"src":"27969:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":5349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27969:73:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27960:82:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5327,"id":5351,"nodeType":"Return","src":"27953:89:27"}]}]},"documentation":{"id":5318,"nodeType":"StructuredDocumentation","src":"27644:144:27","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":5354,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"27802:6:27","nodeType":"FunctionDefinition","parameters":{"id":5324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5320,"mutability":"mutable","name":"value","nameLocation":"27817:5:27","nodeType":"VariableDeclaration","scope":5354,"src":"27809:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5319,"name":"uint256","nodeType":"ElementaryTypeName","src":"27809:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5323,"mutability":"mutable","name":"rounding","nameLocation":"27833:8:27","nodeType":"VariableDeclaration","scope":5354,"src":"27824:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":5322,"nodeType":"UserDefinedTypeName","pathNode":{"id":5321,"name":"Rounding","nameLocations":["27824:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"27824:8:27"},"referencedDeclaration":3780,"src":"27824:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27808:34:27"},"returnParameters":{"id":5327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5354,"src":"27866:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5325,"name":"uint256","nodeType":"ElementaryTypeName","src":"27866:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27865:9:27"},"scope":5374,"src":"27793:266:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5372,"nodeType":"Block","src":"28257:48:27","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":5368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5365,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5358,"src":"28280:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}],"id":5364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28274:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5363,"name":"uint8","nodeType":"ElementaryTypeName","src":"28274:5:27","typeDescriptions":{}}},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28274:15:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":5367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28292:1:27","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"28274:19:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":5369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28297:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28274:24:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5362,"id":5371,"nodeType":"Return","src":"28267:31:27"}]},"documentation":{"id":5355,"nodeType":"StructuredDocumentation","src":"28065:113:27","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":5373,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"28192:16:27","nodeType":"FunctionDefinition","parameters":{"id":5359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5358,"mutability":"mutable","name":"rounding","nameLocation":"28218:8:27","nodeType":"VariableDeclaration","scope":5373,"src":"28209:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"},"typeName":{"id":5357,"nodeType":"UserDefinedTypeName","pathNode":{"id":5356,"name":"Rounding","nameLocations":["28209:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":3780,"src":"28209:8:27"},"referencedDeclaration":3780,"src":"28209:8:27","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3780","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"28208:19:27"},"returnParameters":{"id":5362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5373,"src":"28251:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5360,"name":"bool","nodeType":"ElementaryTypeName","src":"28251:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28250:6:27"},"scope":5374,"src":"28183:122:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":5375,"src":"281:28026:27","usedErrors":[],"usedEvents":[]}],"src":"103:28205:27"},"id":27},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[7139]},"id":7140,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":5376,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:28"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":5377,"nodeType":"StructuredDocumentation","src":"218:550:28","text":" @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":7139,"linearizedBaseContracts":[7139],"name":"SafeCast","nameLocation":"777:8:28","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":5378,"nodeType":"StructuredDocumentation","src":"792:68:28","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":5384,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:28","nodeType":"ErrorDefinition","parameters":{"id":5383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5380,"mutability":"mutable","name":"bits","nameLocation":"908:4:28","nodeType":"VariableDeclaration","scope":5384,"src":"902:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5379,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5382,"mutability":"mutable","name":"value","nameLocation":"922:5:28","nodeType":"VariableDeclaration","scope":5384,"src":"914:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5381,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:28"},"src":"865:64:28"},{"documentation":{"id":5385,"nodeType":"StructuredDocumentation","src":"935:75:28","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":5389,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:28","nodeType":"ErrorDefinition","parameters":{"id":5388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5387,"mutability":"mutable","name":"value","nameLocation":"1056:5:28","nodeType":"VariableDeclaration","scope":5389,"src":"1049:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5386,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:28"},"src":"1015:48:28"},{"documentation":{"id":5390,"nodeType":"StructuredDocumentation","src":"1069:67:28","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":5396,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:28","nodeType":"ErrorDefinition","parameters":{"id":5395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5392,"mutability":"mutable","name":"bits","nameLocation":"1183:4:28","nodeType":"VariableDeclaration","scope":5396,"src":"1177:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5391,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":5394,"mutability":"mutable","name":"value","nameLocation":"1196:5:28","nodeType":"VariableDeclaration","scope":5396,"src":"1189:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5393,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:28"},"src":"1141:62:28"},{"documentation":{"id":5397,"nodeType":"StructuredDocumentation","src":"1209:75:28","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":5401,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:28","nodeType":"ErrorDefinition","parameters":{"id":5400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5399,"mutability":"mutable","name":"value","nameLocation":"1331:5:28","nodeType":"VariableDeclaration","scope":5401,"src":"1323:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5398,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:28"},"src":"1289:49:28"},{"body":{"id":5428,"nodeType":"Block","src":"1695:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5409,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"1709:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":5411,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":5410,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":5414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:28","memberName":"max","nodeType":"MemberAccess","src":"1717:17:28","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5422,"nodeType":"IfStatement","src":"1705:105:28","trueBody":{"id":5421,"nodeType":"Block","src":"1736:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":5417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:28","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":5418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"1793:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5416,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"1757:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5420,"nodeType":"RevertStatement","src":"1750:49:28"}]}},{"expression":{"arguments":[{"id":5425,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"1834:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":5423,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:28","typeDescriptions":{}}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":5408,"id":5427,"nodeType":"Return","src":"1819:21:28"}]},"documentation":{"id":5402,"nodeType":"StructuredDocumentation","src":"1344:280:28","text":" @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":5429,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:28","nodeType":"FunctionDefinition","parameters":{"id":5405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"mutability":"mutable","name":"value","nameLocation":"1656:5:28","nodeType":"VariableDeclaration","scope":5429,"src":"1648:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5403,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:28"},"returnParameters":{"id":5408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"1686:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":5406,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:28","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:28"},"scope":7139,"src":"1629:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5456,"nodeType":"Block","src":"2204:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5437,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"2218:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":5439,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":5438,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":5442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:28","memberName":"max","nodeType":"MemberAccess","src":"2226:17:28","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5450,"nodeType":"IfStatement","src":"2214:105:28","trueBody":{"id":5449,"nodeType":"Block","src":"2245:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":5445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:28","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":5446,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"2302:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5444,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"2266:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5448,"nodeType":"RevertStatement","src":"2259:49:28"}]}},{"expression":{"arguments":[{"id":5453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"2343:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":5451,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:28","typeDescriptions":{}}},"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":5436,"id":5455,"nodeType":"Return","src":"2328:21:28"}]},"documentation":{"id":5430,"nodeType":"StructuredDocumentation","src":"1853:280:28","text":" @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":5457,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:28","nodeType":"FunctionDefinition","parameters":{"id":5433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5432,"mutability":"mutable","name":"value","nameLocation":"2165:5:28","nodeType":"VariableDeclaration","scope":5457,"src":"2157:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5431,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:28"},"returnParameters":{"id":5436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5457,"src":"2195:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":5434,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:28","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:28"},"scope":7139,"src":"2138:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5484,"nodeType":"Block","src":"2713:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2727:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":5467,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":5466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":5470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:28","memberName":"max","nodeType":"MemberAccess","src":"2735:17:28","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5478,"nodeType":"IfStatement","src":"2723:105:28","trueBody":{"id":5477,"nodeType":"Block","src":"2754:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":5473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:28","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":5474,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2811:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5472,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"2775:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5476,"nodeType":"RevertStatement","src":"2768:49:28"}]}},{"expression":{"arguments":[{"id":5481,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5460,"src":"2852:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":5479,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:28","typeDescriptions":{}}},"id":5482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":5464,"id":5483,"nodeType":"Return","src":"2837:21:28"}]},"documentation":{"id":5458,"nodeType":"StructuredDocumentation","src":"2362:280:28","text":" @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":5485,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:28","nodeType":"FunctionDefinition","parameters":{"id":5461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5460,"mutability":"mutable","name":"value","nameLocation":"2674:5:28","nodeType":"VariableDeclaration","scope":5485,"src":"2666:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5459,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:28"},"returnParameters":{"id":5464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5463,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5485,"src":"2704:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":5462,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:28","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:28"},"scope":7139,"src":"2647:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5512,"nodeType":"Block","src":"3222:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5488,"src":"3236:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":5495,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":5494,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":5498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:28","memberName":"max","nodeType":"MemberAccess","src":"3244:17:28","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5506,"nodeType":"IfStatement","src":"3232:105:28","trueBody":{"id":5505,"nodeType":"Block","src":"3263:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":5501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:28","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":5502,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5488,"src":"3320:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5500,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"3284:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5504,"nodeType":"RevertStatement","src":"3277:49:28"}]}},{"expression":{"arguments":[{"id":5509,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5488,"src":"3361:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":5507,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:28","typeDescriptions":{}}},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":5492,"id":5511,"nodeType":"Return","src":"3346:21:28"}]},"documentation":{"id":5486,"nodeType":"StructuredDocumentation","src":"2871:280:28","text":" @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":5513,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:28","nodeType":"FunctionDefinition","parameters":{"id":5489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5488,"mutability":"mutable","name":"value","nameLocation":"3183:5:28","nodeType":"VariableDeclaration","scope":5513,"src":"3175:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5487,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:28"},"returnParameters":{"id":5492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5491,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5513,"src":"3213:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":5490,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:28","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:28"},"scope":7139,"src":"3156:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5540,"nodeType":"Block","src":"3731:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"3745:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":5523,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":5522,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":5526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:28","memberName":"max","nodeType":"MemberAccess","src":"3753:17:28","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5534,"nodeType":"IfStatement","src":"3741:105:28","trueBody":{"id":5533,"nodeType":"Block","src":"3772:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":5529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:28","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":5530,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"3829:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5528,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"3793:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5532,"nodeType":"RevertStatement","src":"3786:49:28"}]}},{"expression":{"arguments":[{"id":5537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5516,"src":"3870:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":5535,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:28","typeDescriptions":{}}},"id":5538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":5520,"id":5539,"nodeType":"Return","src":"3855:21:28"}]},"documentation":{"id":5514,"nodeType":"StructuredDocumentation","src":"3380:280:28","text":" @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":5541,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:28","nodeType":"FunctionDefinition","parameters":{"id":5517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5516,"mutability":"mutable","name":"value","nameLocation":"3692:5:28","nodeType":"VariableDeclaration","scope":5541,"src":"3684:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5515,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:28"},"returnParameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5541,"src":"3722:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":5518,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:28","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:28"},"scope":7139,"src":"3665:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5568,"nodeType":"Block","src":"4240:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5549,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"4254:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":5551,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":5550,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":5554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:28","memberName":"max","nodeType":"MemberAccess","src":"4262:17:28","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5562,"nodeType":"IfStatement","src":"4250:105:28","trueBody":{"id":5561,"nodeType":"Block","src":"4281:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":5557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:28","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":5558,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"4338:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5556,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"4302:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5560,"nodeType":"RevertStatement","src":"4295:49:28"}]}},{"expression":{"arguments":[{"id":5565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5544,"src":"4379:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":5563,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:28","typeDescriptions":{}}},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":5548,"id":5567,"nodeType":"Return","src":"4364:21:28"}]},"documentation":{"id":5542,"nodeType":"StructuredDocumentation","src":"3889:280:28","text":" @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":5569,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:28","nodeType":"FunctionDefinition","parameters":{"id":5545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5544,"mutability":"mutable","name":"value","nameLocation":"4201:5:28","nodeType":"VariableDeclaration","scope":5569,"src":"4193:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5543,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:28"},"returnParameters":{"id":5548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5569,"src":"4231:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":5546,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:28","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:28"},"scope":7139,"src":"4174:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5596,"nodeType":"Block","src":"4749:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5577,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"4763:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":5579,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":5578,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:28","memberName":"max","nodeType":"MemberAccess","src":"4771:17:28","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5590,"nodeType":"IfStatement","src":"4759:105:28","trueBody":{"id":5589,"nodeType":"Block","src":"4790:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":5585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:28","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":5586,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"4847:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5584,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"4811:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5588,"nodeType":"RevertStatement","src":"4804:49:28"}]}},{"expression":{"arguments":[{"id":5593,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"4888:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":5591,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:28","typeDescriptions":{}}},"id":5594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":5576,"id":5595,"nodeType":"Return","src":"4873:21:28"}]},"documentation":{"id":5570,"nodeType":"StructuredDocumentation","src":"4398:280:28","text":" @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":5597,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:28","nodeType":"FunctionDefinition","parameters":{"id":5573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5572,"mutability":"mutable","name":"value","nameLocation":"4710:5:28","nodeType":"VariableDeclaration","scope":5597,"src":"4702:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5571,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:28"},"returnParameters":{"id":5576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5597,"src":"4740:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":5574,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:28","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:28"},"scope":7139,"src":"4683:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5624,"nodeType":"Block","src":"5258:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5605,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"5272:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":5607,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":5606,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:28","memberName":"max","nodeType":"MemberAccess","src":"5280:17:28","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5618,"nodeType":"IfStatement","src":"5268:105:28","trueBody":{"id":5617,"nodeType":"Block","src":"5299:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":5613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:28","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":5614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"5356:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5612,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"5320:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5616,"nodeType":"RevertStatement","src":"5313:49:28"}]}},{"expression":{"arguments":[{"id":5621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5600,"src":"5397:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":5619,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:28","typeDescriptions":{}}},"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":5604,"id":5623,"nodeType":"Return","src":"5382:21:28"}]},"documentation":{"id":5598,"nodeType":"StructuredDocumentation","src":"4907:280:28","text":" @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":5625,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:28","nodeType":"FunctionDefinition","parameters":{"id":5601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5600,"mutability":"mutable","name":"value","nameLocation":"5219:5:28","nodeType":"VariableDeclaration","scope":5625,"src":"5211:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5599,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:28"},"returnParameters":{"id":5604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5625,"src":"5249:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":5602,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:28","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:28"},"scope":7139,"src":"5192:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5652,"nodeType":"Block","src":"5767:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5633,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"5781:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":5635,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":5634,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":5638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:28","memberName":"max","nodeType":"MemberAccess","src":"5789:17:28","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5646,"nodeType":"IfStatement","src":"5777:105:28","trueBody":{"id":5645,"nodeType":"Block","src":"5808:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":5641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:28","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":5642,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"5865:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5640,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"5829:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5644,"nodeType":"RevertStatement","src":"5822:49:28"}]}},{"expression":{"arguments":[{"id":5649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"5906:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":5647,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:28","typeDescriptions":{}}},"id":5650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":5632,"id":5651,"nodeType":"Return","src":"5891:21:28"}]},"documentation":{"id":5626,"nodeType":"StructuredDocumentation","src":"5416:280:28","text":" @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":5653,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:28","nodeType":"FunctionDefinition","parameters":{"id":5629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5628,"mutability":"mutable","name":"value","nameLocation":"5728:5:28","nodeType":"VariableDeclaration","scope":5653,"src":"5720:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5627,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:28"},"returnParameters":{"id":5632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5653,"src":"5758:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":5630,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:28","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:28"},"scope":7139,"src":"5701:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5680,"nodeType":"Block","src":"6276:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5656,"src":"6290:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":5663,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":5662,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:28","memberName":"max","nodeType":"MemberAccess","src":"6298:17:28","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5674,"nodeType":"IfStatement","src":"6286:105:28","trueBody":{"id":5673,"nodeType":"Block","src":"6317:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":5669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:28","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":5670,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5656,"src":"6374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5668,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"6338:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5672,"nodeType":"RevertStatement","src":"6331:49:28"}]}},{"expression":{"arguments":[{"id":5677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5656,"src":"6415:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":5675,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:28","typeDescriptions":{}}},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":5660,"id":5679,"nodeType":"Return","src":"6400:21:28"}]},"documentation":{"id":5654,"nodeType":"StructuredDocumentation","src":"5925:280:28","text":" @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":5681,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:28","nodeType":"FunctionDefinition","parameters":{"id":5657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5656,"mutability":"mutable","name":"value","nameLocation":"6237:5:28","nodeType":"VariableDeclaration","scope":5681,"src":"6229:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5655,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:28"},"returnParameters":{"id":5660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5681,"src":"6267:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":5658,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:28","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:28"},"scope":7139,"src":"6210:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5708,"nodeType":"Block","src":"6785:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5689,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5684,"src":"6799:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":5691,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":5690,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":5694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:28","memberName":"max","nodeType":"MemberAccess","src":"6807:17:28","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5702,"nodeType":"IfStatement","src":"6795:105:28","trueBody":{"id":5701,"nodeType":"Block","src":"6826:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":5697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:28","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":5698,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5684,"src":"6883:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5696,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"6847:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5700,"nodeType":"RevertStatement","src":"6840:49:28"}]}},{"expression":{"arguments":[{"id":5705,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5684,"src":"6924:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":5703,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:28","typeDescriptions":{}}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":5688,"id":5707,"nodeType":"Return","src":"6909:21:28"}]},"documentation":{"id":5682,"nodeType":"StructuredDocumentation","src":"6434:280:28","text":" @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":5709,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:28","nodeType":"FunctionDefinition","parameters":{"id":5685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5684,"mutability":"mutable","name":"value","nameLocation":"6746:5:28","nodeType":"VariableDeclaration","scope":5709,"src":"6738:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5683,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:28"},"returnParameters":{"id":5688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5709,"src":"6776:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":5686,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:28","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:28"},"scope":7139,"src":"6719:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5736,"nodeType":"Block","src":"7294:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5717,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5712,"src":"7308:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5719,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":5718,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":5722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:28","memberName":"max","nodeType":"MemberAccess","src":"7316:17:28","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5730,"nodeType":"IfStatement","src":"7304:105:28","trueBody":{"id":5729,"nodeType":"Block","src":"7335:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":5725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:28","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":5726,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5712,"src":"7392:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5724,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"7356:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5728,"nodeType":"RevertStatement","src":"7349:49:28"}]}},{"expression":{"arguments":[{"id":5733,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5712,"src":"7433:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5731,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:28","typeDescriptions":{}}},"id":5734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":5716,"id":5735,"nodeType":"Return","src":"7418:21:28"}]},"documentation":{"id":5710,"nodeType":"StructuredDocumentation","src":"6943:280:28","text":" @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":5737,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:28","nodeType":"FunctionDefinition","parameters":{"id":5713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5712,"mutability":"mutable","name":"value","nameLocation":"7255:5:28","nodeType":"VariableDeclaration","scope":5737,"src":"7247:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5711,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:28"},"returnParameters":{"id":5716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5737,"src":"7285:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":5714,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:28","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:28"},"scope":7139,"src":"7228:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5764,"nodeType":"Block","src":"7803:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"7817:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":5747,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":5746,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":5750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:28","memberName":"max","nodeType":"MemberAccess","src":"7825:17:28","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5758,"nodeType":"IfStatement","src":"7813:105:28","trueBody":{"id":5757,"nodeType":"Block","src":"7844:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":5753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:28","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":5754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"7901:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5752,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"7865:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5756,"nodeType":"RevertStatement","src":"7858:49:28"}]}},{"expression":{"arguments":[{"id":5761,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"7942:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":5759,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:28","typeDescriptions":{}}},"id":5762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":5744,"id":5763,"nodeType":"Return","src":"7927:21:28"}]},"documentation":{"id":5738,"nodeType":"StructuredDocumentation","src":"7452:280:28","text":" @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":5765,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:28","nodeType":"FunctionDefinition","parameters":{"id":5741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5740,"mutability":"mutable","name":"value","nameLocation":"7764:5:28","nodeType":"VariableDeclaration","scope":5765,"src":"7756:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5739,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:28"},"returnParameters":{"id":5744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5765,"src":"7794:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":5742,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:28","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:28"},"scope":7139,"src":"7737:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5792,"nodeType":"Block","src":"8312:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"8326:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":5775,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":5774,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":5778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:28","memberName":"max","nodeType":"MemberAccess","src":"8334:17:28","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5786,"nodeType":"IfStatement","src":"8322:105:28","trueBody":{"id":5785,"nodeType":"Block","src":"8353:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":5781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:28","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":5782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"8410:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5780,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"8374:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5784,"nodeType":"RevertStatement","src":"8367:49:28"}]}},{"expression":{"arguments":[{"id":5789,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"8451:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":5787,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:28","typeDescriptions":{}}},"id":5790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":5772,"id":5791,"nodeType":"Return","src":"8436:21:28"}]},"documentation":{"id":5766,"nodeType":"StructuredDocumentation","src":"7961:280:28","text":" @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":5793,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:28","nodeType":"FunctionDefinition","parameters":{"id":5769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5768,"mutability":"mutable","name":"value","nameLocation":"8273:5:28","nodeType":"VariableDeclaration","scope":5793,"src":"8265:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5767,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:28"},"returnParameters":{"id":5772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5771,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5793,"src":"8303:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":5770,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:28","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:28"},"scope":7139,"src":"8246:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5820,"nodeType":"Block","src":"8821:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5801,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"8835:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":5803,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":5802,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":5806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:28","memberName":"max","nodeType":"MemberAccess","src":"8843:17:28","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5814,"nodeType":"IfStatement","src":"8831:105:28","trueBody":{"id":5813,"nodeType":"Block","src":"8862:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":5809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:28","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":5810,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"8919:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5808,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"8883:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5812,"nodeType":"RevertStatement","src":"8876:49:28"}]}},{"expression":{"arguments":[{"id":5817,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5796,"src":"8960:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":5815,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:28","typeDescriptions":{}}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":5800,"id":5819,"nodeType":"Return","src":"8945:21:28"}]},"documentation":{"id":5794,"nodeType":"StructuredDocumentation","src":"8470:280:28","text":" @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":5821,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:28","nodeType":"FunctionDefinition","parameters":{"id":5797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5796,"mutability":"mutable","name":"value","nameLocation":"8782:5:28","nodeType":"VariableDeclaration","scope":5821,"src":"8774:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5795,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:28"},"returnParameters":{"id":5800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5821,"src":"8812:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":5798,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:28","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:28"},"scope":7139,"src":"8755:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5848,"nodeType":"Block","src":"9330:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5824,"src":"9344:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":5831,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":5830,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":5834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:28","memberName":"max","nodeType":"MemberAccess","src":"9352:17:28","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5842,"nodeType":"IfStatement","src":"9340:105:28","trueBody":{"id":5841,"nodeType":"Block","src":"9371:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":5837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:28","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":5838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5824,"src":"9428:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5836,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"9392:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5840,"nodeType":"RevertStatement","src":"9385:49:28"}]}},{"expression":{"arguments":[{"id":5845,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5824,"src":"9469:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":5843,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:28","typeDescriptions":{}}},"id":5846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":5828,"id":5847,"nodeType":"Return","src":"9454:21:28"}]},"documentation":{"id":5822,"nodeType":"StructuredDocumentation","src":"8979:280:28","text":" @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":5849,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:28","nodeType":"FunctionDefinition","parameters":{"id":5825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5824,"mutability":"mutable","name":"value","nameLocation":"9291:5:28","nodeType":"VariableDeclaration","scope":5849,"src":"9283:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5823,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:28"},"returnParameters":{"id":5828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5849,"src":"9321:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":5826,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:28","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:28"},"scope":7139,"src":"9264:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5876,"nodeType":"Block","src":"9839:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5857,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"9853:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":5859,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":5858,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":5862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:28","memberName":"max","nodeType":"MemberAccess","src":"9861:17:28","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5870,"nodeType":"IfStatement","src":"9849:105:28","trueBody":{"id":5869,"nodeType":"Block","src":"9880:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":5865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:28","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":5866,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"9937:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5864,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"9901:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5868,"nodeType":"RevertStatement","src":"9894:49:28"}]}},{"expression":{"arguments":[{"id":5873,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"9978:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":5871,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:28","typeDescriptions":{}}},"id":5874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":5856,"id":5875,"nodeType":"Return","src":"9963:21:28"}]},"documentation":{"id":5850,"nodeType":"StructuredDocumentation","src":"9488:280:28","text":" @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":5877,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:28","nodeType":"FunctionDefinition","parameters":{"id":5853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"value","nameLocation":"9800:5:28","nodeType":"VariableDeclaration","scope":5877,"src":"9792:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5851,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:28"},"returnParameters":{"id":5856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5877,"src":"9830:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":5854,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:28","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:28"},"scope":7139,"src":"9773:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5904,"nodeType":"Block","src":"10348:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5885,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5880,"src":"10362:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":5887,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":5886,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":5890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:28","memberName":"max","nodeType":"MemberAccess","src":"10370:17:28","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5898,"nodeType":"IfStatement","src":"10358:105:28","trueBody":{"id":5897,"nodeType":"Block","src":"10389:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":5893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:28","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":5894,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5880,"src":"10446:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5892,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"10410:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5896,"nodeType":"RevertStatement","src":"10403:49:28"}]}},{"expression":{"arguments":[{"id":5901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5880,"src":"10487:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":5899,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:28","typeDescriptions":{}}},"id":5902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":5884,"id":5903,"nodeType":"Return","src":"10472:21:28"}]},"documentation":{"id":5878,"nodeType":"StructuredDocumentation","src":"9997:280:28","text":" @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":5905,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:28","nodeType":"FunctionDefinition","parameters":{"id":5881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5880,"mutability":"mutable","name":"value","nameLocation":"10309:5:28","nodeType":"VariableDeclaration","scope":5905,"src":"10301:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5879,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:28"},"returnParameters":{"id":5884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5905,"src":"10339:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":5882,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:28","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:28"},"scope":7139,"src":"10282:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5932,"nodeType":"Block","src":"10857:152:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"10871:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5915,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":5914,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":5918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:28","memberName":"max","nodeType":"MemberAccess","src":"10879:17:28","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5926,"nodeType":"IfStatement","src":"10867:105:28","trueBody":{"id":5925,"nodeType":"Block","src":"10898:74:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":5921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:28","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":5922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"10955:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5920,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"10919:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5924,"nodeType":"RevertStatement","src":"10912:49:28"}]}},{"expression":{"arguments":[{"id":5929,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"10996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":5927,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:28","typeDescriptions":{}}},"id":5930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":5912,"id":5931,"nodeType":"Return","src":"10981:21:28"}]},"documentation":{"id":5906,"nodeType":"StructuredDocumentation","src":"10506:280:28","text":" @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":5933,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:28","nodeType":"FunctionDefinition","parameters":{"id":5909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5908,"mutability":"mutable","name":"value","nameLocation":"10818:5:28","nodeType":"VariableDeclaration","scope":5933,"src":"10810:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5907,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:28"},"returnParameters":{"id":5912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5933,"src":"10848:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":5910,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:28","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:28"},"scope":7139,"src":"10791:218:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5960,"nodeType":"Block","src":"11360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5936,"src":"11374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5943,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":5942,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":5946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:28","memberName":"max","nodeType":"MemberAccess","src":"11382:16:28","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5954,"nodeType":"IfStatement","src":"11370:103:28","trueBody":{"id":5953,"nodeType":"Block","src":"11400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5950,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5936,"src":"11456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5948,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"11421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5952,"nodeType":"RevertStatement","src":"11414:48:28"}]}},{"expression":{"arguments":[{"id":5957,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5936,"src":"11496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5955,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:28","typeDescriptions":{}}},"id":5958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":5940,"id":5959,"nodeType":"Return","src":"11482:20:28"}]},"documentation":{"id":5934,"nodeType":"StructuredDocumentation","src":"11015:276:28","text":" @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":5961,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:28","nodeType":"FunctionDefinition","parameters":{"id":5937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5936,"mutability":"mutable","name":"value","nameLocation":"11322:5:28","nodeType":"VariableDeclaration","scope":5961,"src":"11314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5935,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:28"},"returnParameters":{"id":5940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5961,"src":"11352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":5938,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:28","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:28"},"scope":7139,"src":"11296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5988,"nodeType":"Block","src":"11860:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5969,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"11874:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5971,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":5970,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":5974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:28","memberName":"max","nodeType":"MemberAccess","src":"11882:16:28","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5982,"nodeType":"IfStatement","src":"11870:103:28","trueBody":{"id":5981,"nodeType":"Block","src":"11900:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:28","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"11956:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5976,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"11921:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5980,"nodeType":"RevertStatement","src":"11914:48:28"}]}},{"expression":{"arguments":[{"id":5985,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"11996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5983,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:28","typeDescriptions":{}}},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":5968,"id":5987,"nodeType":"Return","src":"11982:20:28"}]},"documentation":{"id":5962,"nodeType":"StructuredDocumentation","src":"11515:276:28","text":" @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":5989,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:28","nodeType":"FunctionDefinition","parameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"value","nameLocation":"11822:5:28","nodeType":"VariableDeclaration","scope":5989,"src":"11814:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5963,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:28"},"returnParameters":{"id":5968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5989,"src":"11852:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":5966,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:28","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:28"},"scope":7139,"src":"11796:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6016,"nodeType":"Block","src":"12360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5997,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"12374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5999,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":5998,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":6002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:28","memberName":"max","nodeType":"MemberAccess","src":"12382:16:28","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6010,"nodeType":"IfStatement","src":"12370:103:28","trueBody":{"id":6009,"nodeType":"Block","src":"12400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":6005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":6006,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"12456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6004,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"12421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6008,"nodeType":"RevertStatement","src":"12414:48:28"}]}},{"expression":{"arguments":[{"id":6013,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5992,"src":"12496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":6011,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:28","typeDescriptions":{}}},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":5996,"id":6015,"nodeType":"Return","src":"12482:20:28"}]},"documentation":{"id":5990,"nodeType":"StructuredDocumentation","src":"12015:276:28","text":" @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":6017,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:28","nodeType":"FunctionDefinition","parameters":{"id":5993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5992,"mutability":"mutable","name":"value","nameLocation":"12322:5:28","nodeType":"VariableDeclaration","scope":6017,"src":"12314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5991,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:28"},"returnParameters":{"id":5996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6017,"src":"12352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":5994,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:28","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:28"},"scope":7139,"src":"12296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6044,"nodeType":"Block","src":"12860:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6020,"src":"12874:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":6027,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":6026,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":6030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:28","memberName":"max","nodeType":"MemberAccess","src":"12882:16:28","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6038,"nodeType":"IfStatement","src":"12870:103:28","trueBody":{"id":6037,"nodeType":"Block","src":"12900:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":6033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:28","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":6034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6020,"src":"12956:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6032,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"12921:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6036,"nodeType":"RevertStatement","src":"12914:48:28"}]}},{"expression":{"arguments":[{"id":6041,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6020,"src":"12996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":6039,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:28","typeDescriptions":{}}},"id":6042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":6024,"id":6043,"nodeType":"Return","src":"12982:20:28"}]},"documentation":{"id":6018,"nodeType":"StructuredDocumentation","src":"12515:276:28","text":" @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":6045,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:28","nodeType":"FunctionDefinition","parameters":{"id":6021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6020,"mutability":"mutable","name":"value","nameLocation":"12822:5:28","nodeType":"VariableDeclaration","scope":6045,"src":"12814:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6019,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:28"},"returnParameters":{"id":6024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6045,"src":"12852:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":6022,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:28","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:28"},"scope":7139,"src":"12796:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6072,"nodeType":"Block","src":"13360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"13374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":6055,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":6054,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:28","memberName":"max","nodeType":"MemberAccess","src":"13382:16:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6066,"nodeType":"IfStatement","src":"13370:103:28","trueBody":{"id":6065,"nodeType":"Block","src":"13400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":6061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":6062,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"13456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6060,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"13421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6064,"nodeType":"RevertStatement","src":"13414:48:28"}]}},{"expression":{"arguments":[{"id":6069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6048,"src":"13496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":6067,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:28","typeDescriptions":{}}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":6052,"id":6071,"nodeType":"Return","src":"13482:20:28"}]},"documentation":{"id":6046,"nodeType":"StructuredDocumentation","src":"13015:276:28","text":" @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":6073,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:28","nodeType":"FunctionDefinition","parameters":{"id":6049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6048,"mutability":"mutable","name":"value","nameLocation":"13322:5:28","nodeType":"VariableDeclaration","scope":6073,"src":"13314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6047,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:28"},"returnParameters":{"id":6052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6073,"src":"13352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6050,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:28"},"scope":7139,"src":"13296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6100,"nodeType":"Block","src":"13860:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"13874:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":6083,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":6082,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:28","memberName":"max","nodeType":"MemberAccess","src":"13882:16:28","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6094,"nodeType":"IfStatement","src":"13870:103:28","trueBody":{"id":6093,"nodeType":"Block","src":"13900:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":6089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:28","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":6090,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"13956:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6088,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"13921:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6092,"nodeType":"RevertStatement","src":"13914:48:28"}]}},{"expression":{"arguments":[{"id":6097,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"13996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":6095,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:28","typeDescriptions":{}}},"id":6098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":6080,"id":6099,"nodeType":"Return","src":"13982:20:28"}]},"documentation":{"id":6074,"nodeType":"StructuredDocumentation","src":"13515:276:28","text":" @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":6101,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:28","nodeType":"FunctionDefinition","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"value","nameLocation":"13822:5:28","nodeType":"VariableDeclaration","scope":6101,"src":"13814:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:28"},"returnParameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6101,"src":"13852:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":6078,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:28","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:28"},"scope":7139,"src":"13796:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6128,"nodeType":"Block","src":"14360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6109,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"14374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":6111,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":6110,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":6114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:28","memberName":"max","nodeType":"MemberAccess","src":"14382:16:28","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6122,"nodeType":"IfStatement","src":"14370:103:28","trueBody":{"id":6121,"nodeType":"Block","src":"14400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":6118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"14456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6116,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"14421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6120,"nodeType":"RevertStatement","src":"14414:48:28"}]}},{"expression":{"arguments":[{"id":6125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6104,"src":"14496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":6123,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:28","typeDescriptions":{}}},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":6108,"id":6127,"nodeType":"Return","src":"14482:20:28"}]},"documentation":{"id":6102,"nodeType":"StructuredDocumentation","src":"14015:276:28","text":" @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":6129,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:28","nodeType":"FunctionDefinition","parameters":{"id":6105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6104,"mutability":"mutable","name":"value","nameLocation":"14322:5:28","nodeType":"VariableDeclaration","scope":6129,"src":"14314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6103,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:28"},"returnParameters":{"id":6108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6129,"src":"14352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":6106,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:28","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:28"},"scope":7139,"src":"14296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6156,"nodeType":"Block","src":"14860:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"14874:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":6139,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":6138,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":6142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:28","memberName":"max","nodeType":"MemberAccess","src":"14882:16:28","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6150,"nodeType":"IfStatement","src":"14870:103:28","trueBody":{"id":6149,"nodeType":"Block","src":"14900:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":6145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:28","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":6146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"14956:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6144,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"14921:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6148,"nodeType":"RevertStatement","src":"14914:48:28"}]}},{"expression":{"arguments":[{"id":6153,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"14996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":6151,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:28","typeDescriptions":{}}},"id":6154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":6136,"id":6155,"nodeType":"Return","src":"14982:20:28"}]},"documentation":{"id":6130,"nodeType":"StructuredDocumentation","src":"14515:276:28","text":" @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":6157,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:28","nodeType":"FunctionDefinition","parameters":{"id":6133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6132,"mutability":"mutable","name":"value","nameLocation":"14822:5:28","nodeType":"VariableDeclaration","scope":6157,"src":"14814:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6131,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:28"},"returnParameters":{"id":6136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6157,"src":"14852:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":6134,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:28","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:28"},"scope":7139,"src":"14796:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6184,"nodeType":"Block","src":"15360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6165,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"15374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":6167,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":6166,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":6170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:28","memberName":"max","nodeType":"MemberAccess","src":"15382:16:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6178,"nodeType":"IfStatement","src":"15370:103:28","trueBody":{"id":6177,"nodeType":"Block","src":"15400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":6173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":6174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"15456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6172,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"15421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6176,"nodeType":"RevertStatement","src":"15414:48:28"}]}},{"expression":{"arguments":[{"id":6181,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"15496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":6179,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:28","typeDescriptions":{}}},"id":6182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":6164,"id":6183,"nodeType":"Return","src":"15482:20:28"}]},"documentation":{"id":6158,"nodeType":"StructuredDocumentation","src":"15015:276:28","text":" @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":6185,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:28","nodeType":"FunctionDefinition","parameters":{"id":6161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6160,"mutability":"mutable","name":"value","nameLocation":"15322:5:28","nodeType":"VariableDeclaration","scope":6185,"src":"15314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6159,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:28"},"returnParameters":{"id":6164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6185,"src":"15352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":6162,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:28","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:28"},"scope":7139,"src":"15296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6212,"nodeType":"Block","src":"15860:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6188,"src":"15874:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":6195,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":6194,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":6198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:28","memberName":"max","nodeType":"MemberAccess","src":"15882:16:28","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6206,"nodeType":"IfStatement","src":"15870:103:28","trueBody":{"id":6205,"nodeType":"Block","src":"15900:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":6201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:28","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":6202,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6188,"src":"15956:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6200,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"15921:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6204,"nodeType":"RevertStatement","src":"15914:48:28"}]}},{"expression":{"arguments":[{"id":6209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6188,"src":"15996:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":6207,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:28","typeDescriptions":{}}},"id":6210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":6192,"id":6211,"nodeType":"Return","src":"15982:20:28"}]},"documentation":{"id":6186,"nodeType":"StructuredDocumentation","src":"15515:276:28","text":" @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":6213,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:28","nodeType":"FunctionDefinition","parameters":{"id":6189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6188,"mutability":"mutable","name":"value","nameLocation":"15822:5:28","nodeType":"VariableDeclaration","scope":6213,"src":"15814:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6187,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:28"},"returnParameters":{"id":6192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6191,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6213,"src":"15852:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":6190,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:28","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:28"},"scope":7139,"src":"15796:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6240,"nodeType":"Block","src":"16360:149:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"16374:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":6223,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":6222,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":6226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:28","memberName":"max","nodeType":"MemberAccess","src":"16382:16:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6234,"nodeType":"IfStatement","src":"16370:103:28","trueBody":{"id":6233,"nodeType":"Block","src":"16400:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":6229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:28","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":6230,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"16456:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6228,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"16421:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6232,"nodeType":"RevertStatement","src":"16414:48:28"}]}},{"expression":{"arguments":[{"id":6237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6216,"src":"16496:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":6235,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:28","typeDescriptions":{}}},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":6220,"id":6239,"nodeType":"Return","src":"16482:20:28"}]},"documentation":{"id":6214,"nodeType":"StructuredDocumentation","src":"16015:276:28","text":" @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":6241,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:28","nodeType":"FunctionDefinition","parameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6216,"mutability":"mutable","name":"value","nameLocation":"16322:5:28","nodeType":"VariableDeclaration","scope":6241,"src":"16314:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6215,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:28"},"returnParameters":{"id":6220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6241,"src":"16352:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6218,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:28","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:28"},"scope":7139,"src":"16296:213:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6268,"nodeType":"Block","src":"16854:146:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6249,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"16868:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":6252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6251,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":6250,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":6254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:28","memberName":"max","nodeType":"MemberAccess","src":"16876:15:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6262,"nodeType":"IfStatement","src":"16864:101:28","trueBody":{"id":6261,"nodeType":"Block","src":"16893:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":6257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:28","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":6258,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"16948:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6256,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"16914:30:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":6259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6260,"nodeType":"RevertStatement","src":"16907:47:28"}]}},{"expression":{"arguments":[{"id":6265,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6244,"src":"16987:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":6263,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:28","typeDescriptions":{}}},"id":6266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":6248,"id":6267,"nodeType":"Return","src":"16974:19:28"}]},"documentation":{"id":6242,"nodeType":"StructuredDocumentation","src":"16515:272:28","text":" @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":6269,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:28","nodeType":"FunctionDefinition","parameters":{"id":6245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6244,"mutability":"mutable","name":"value","nameLocation":"16817:5:28","nodeType":"VariableDeclaration","scope":6269,"src":"16809:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6243,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:28"},"returnParameters":{"id":6248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6269,"src":"16847:5:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6246,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:28","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:28"},"scope":7139,"src":"16792:208:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6291,"nodeType":"Block","src":"17236:128:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6272,"src":"17250:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":6278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6285,"nodeType":"IfStatement","src":"17246:81:28","trueBody":{"id":6284,"nodeType":"Block","src":"17261:66:28","statements":[{"errorCall":{"arguments":[{"id":6281,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6272,"src":"17310:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6280,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"17282:27:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$_t_error_$","typeString":"function (int256) pure returns (error)"}},"id":6282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6283,"nodeType":"RevertStatement","src":"17275:41:28"}]}},{"expression":{"arguments":[{"id":6288,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6272,"src":"17351:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6286,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:28","typeDescriptions":{}}},"id":6289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6276,"id":6290,"nodeType":"Return","src":"17336:21:28"}]},"documentation":{"id":6270,"nodeType":"StructuredDocumentation","src":"17006:160:28","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":6292,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:28","nodeType":"FunctionDefinition","parameters":{"id":6273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6272,"mutability":"mutable","name":"value","nameLocation":"17197:5:28","nodeType":"VariableDeclaration","scope":6292,"src":"17190:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6271,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:28"},"returnParameters":{"id":6276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6292,"src":"17227:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6274,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:28"},"scope":7139,"src":"17171:193:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6317,"nodeType":"Block","src":"17761:150:28","statements":[{"expression":{"id":6305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6300,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6298,"src":"17771:10:28","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"17791:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":6301,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:28","typeDescriptions":{}}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:28","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":6306,"nodeType":"ExpressionStatement","src":"17771:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6307,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6298,"src":"17811:10:28","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6308,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"17825:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6316,"nodeType":"IfStatement","src":"17807:98:28","trueBody":{"id":6315,"nodeType":"Block","src":"17832:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":6311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:28","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":6312,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"17888:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6310,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"17853:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6314,"nodeType":"RevertStatement","src":"17846:48:28"}]}}]},"documentation":{"id":6293,"nodeType":"StructuredDocumentation","src":"17370:312:28","text":" @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits"},"id":6318,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:28","nodeType":"FunctionDefinition","parameters":{"id":6296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6295,"mutability":"mutable","name":"value","nameLocation":"17712:5:28","nodeType":"VariableDeclaration","scope":6318,"src":"17705:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6294,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:28"},"returnParameters":{"id":6299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6298,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:28","nodeType":"VariableDeclaration","scope":6318,"src":"17742:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":6297,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:28","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:28"},"scope":7139,"src":"17687:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6343,"nodeType":"Block","src":"18308:150:28","statements":[{"expression":{"id":6331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6326,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"18318:10:28","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"18338:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":6327,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:28","typeDescriptions":{}}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:28","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":6332,"nodeType":"ExpressionStatement","src":"18318:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6333,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"18358:10:28","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"18372:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6342,"nodeType":"IfStatement","src":"18354:98:28","trueBody":{"id":6341,"nodeType":"Block","src":"18379:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":6337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:28","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":6338,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6321,"src":"18435:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6336,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"18400:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6340,"nodeType":"RevertStatement","src":"18393:48:28"}]}}]},"documentation":{"id":6319,"nodeType":"StructuredDocumentation","src":"17917:312:28","text":" @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits"},"id":6344,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:28","nodeType":"FunctionDefinition","parameters":{"id":6322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6321,"mutability":"mutable","name":"value","nameLocation":"18259:5:28","nodeType":"VariableDeclaration","scope":6344,"src":"18252:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6320,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:28"},"returnParameters":{"id":6325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6324,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:28","nodeType":"VariableDeclaration","scope":6344,"src":"18289:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":6323,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:28","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:28"},"scope":7139,"src":"18234:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6369,"nodeType":"Block","src":"18855:150:28","statements":[{"expression":{"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6352,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6350,"src":"18865:10:28","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6355,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6347,"src":"18885:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":6353,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:28","typeDescriptions":{}}},"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:28","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":6358,"nodeType":"ExpressionStatement","src":"18865:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6359,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6350,"src":"18905:10:28","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6360,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6347,"src":"18919:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6368,"nodeType":"IfStatement","src":"18901:98:28","trueBody":{"id":6367,"nodeType":"Block","src":"18926:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":6363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:28","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":6364,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6347,"src":"18982:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6362,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"18947:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6366,"nodeType":"RevertStatement","src":"18940:48:28"}]}}]},"documentation":{"id":6345,"nodeType":"StructuredDocumentation","src":"18464:312:28","text":" @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits"},"id":6370,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:28","nodeType":"FunctionDefinition","parameters":{"id":6348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6347,"mutability":"mutable","name":"value","nameLocation":"18806:5:28","nodeType":"VariableDeclaration","scope":6370,"src":"18799:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6346,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:28"},"returnParameters":{"id":6351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6350,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:28","nodeType":"VariableDeclaration","scope":6370,"src":"18836:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":6349,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:28","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:28"},"scope":7139,"src":"18781:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6395,"nodeType":"Block","src":"19402:150:28","statements":[{"expression":{"id":6383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6378,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"19412:10:28","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6381,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"19432:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":6379,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:28","typeDescriptions":{}}},"id":6382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:28","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":6384,"nodeType":"ExpressionStatement","src":"19412:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6385,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6376,"src":"19452:10:28","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6386,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"19466:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6394,"nodeType":"IfStatement","src":"19448:98:28","trueBody":{"id":6393,"nodeType":"Block","src":"19473:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":6389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:28","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":6390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"19529:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6388,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"19494:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6392,"nodeType":"RevertStatement","src":"19487:48:28"}]}}]},"documentation":{"id":6371,"nodeType":"StructuredDocumentation","src":"19011:312:28","text":" @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits"},"id":6396,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:28","nodeType":"FunctionDefinition","parameters":{"id":6374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"mutability":"mutable","name":"value","nameLocation":"19353:5:28","nodeType":"VariableDeclaration","scope":6396,"src":"19346:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6372,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:28"},"returnParameters":{"id":6377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6376,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:28","nodeType":"VariableDeclaration","scope":6396,"src":"19383:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":6375,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:28","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:28"},"scope":7139,"src":"19328:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6421,"nodeType":"Block","src":"19949:150:28","statements":[{"expression":{"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6404,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"19959:10:28","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6407,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6399,"src":"19979:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":6405,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:28","typeDescriptions":{}}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:28","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":6410,"nodeType":"ExpressionStatement","src":"19959:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6411,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6402,"src":"19999:10:28","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6399,"src":"20013:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6420,"nodeType":"IfStatement","src":"19995:98:28","trueBody":{"id":6419,"nodeType":"Block","src":"20020:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":6415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:28","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":6416,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6399,"src":"20076:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6414,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"20041:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6418,"nodeType":"RevertStatement","src":"20034:48:28"}]}}]},"documentation":{"id":6397,"nodeType":"StructuredDocumentation","src":"19558:312:28","text":" @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits"},"id":6422,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:28","nodeType":"FunctionDefinition","parameters":{"id":6400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6399,"mutability":"mutable","name":"value","nameLocation":"19900:5:28","nodeType":"VariableDeclaration","scope":6422,"src":"19893:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6398,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:28"},"returnParameters":{"id":6403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6402,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:28","nodeType":"VariableDeclaration","scope":6422,"src":"19930:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":6401,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:28","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:28"},"scope":7139,"src":"19875:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6447,"nodeType":"Block","src":"20496:150:28","statements":[{"expression":{"id":6435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6430,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6428,"src":"20506:10:28","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6425,"src":"20526:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":6431,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:28","typeDescriptions":{}}},"id":6434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:28","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":6436,"nodeType":"ExpressionStatement","src":"20506:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6437,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6428,"src":"20546:10:28","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6438,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6425,"src":"20560:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6446,"nodeType":"IfStatement","src":"20542:98:28","trueBody":{"id":6445,"nodeType":"Block","src":"20567:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":6441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:28","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":6442,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6425,"src":"20623:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6440,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"20588:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6444,"nodeType":"RevertStatement","src":"20581:48:28"}]}}]},"documentation":{"id":6423,"nodeType":"StructuredDocumentation","src":"20105:312:28","text":" @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits"},"id":6448,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:28","nodeType":"FunctionDefinition","parameters":{"id":6426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6425,"mutability":"mutable","name":"value","nameLocation":"20447:5:28","nodeType":"VariableDeclaration","scope":6448,"src":"20440:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6424,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:28"},"returnParameters":{"id":6429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6428,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:28","nodeType":"VariableDeclaration","scope":6448,"src":"20477:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":6427,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:28","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:28"},"scope":7139,"src":"20422:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6473,"nodeType":"Block","src":"21043:150:28","statements":[{"expression":{"id":6461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6456,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6454,"src":"21053:10:28","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6459,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"21073:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":6457,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:28","typeDescriptions":{}}},"id":6460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:28","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":6462,"nodeType":"ExpressionStatement","src":"21053:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6463,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6454,"src":"21093:10:28","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6464,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"21107:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6472,"nodeType":"IfStatement","src":"21089:98:28","trueBody":{"id":6471,"nodeType":"Block","src":"21114:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":6467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:28","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":6468,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6451,"src":"21170:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6466,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"21135:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6470,"nodeType":"RevertStatement","src":"21128:48:28"}]}}]},"documentation":{"id":6449,"nodeType":"StructuredDocumentation","src":"20652:312:28","text":" @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits"},"id":6474,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:28","nodeType":"FunctionDefinition","parameters":{"id":6452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6451,"mutability":"mutable","name":"value","nameLocation":"20994:5:28","nodeType":"VariableDeclaration","scope":6474,"src":"20987:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6450,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:28"},"returnParameters":{"id":6455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6454,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:28","nodeType":"VariableDeclaration","scope":6474,"src":"21024:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":6453,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:28","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:28"},"scope":7139,"src":"20969:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6499,"nodeType":"Block","src":"21590:150:28","statements":[{"expression":{"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6482,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6480,"src":"21600:10:28","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6485,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"21620:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":6483,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:28","typeDescriptions":{}}},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:28","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":6488,"nodeType":"ExpressionStatement","src":"21600:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6489,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6480,"src":"21640:10:28","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6490,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"21654:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6498,"nodeType":"IfStatement","src":"21636:98:28","trueBody":{"id":6497,"nodeType":"Block","src":"21661:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":6493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:28","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":6494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"21717:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6492,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"21682:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6496,"nodeType":"RevertStatement","src":"21675:48:28"}]}}]},"documentation":{"id":6475,"nodeType":"StructuredDocumentation","src":"21199:312:28","text":" @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits"},"id":6500,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:28","nodeType":"FunctionDefinition","parameters":{"id":6478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6477,"mutability":"mutable","name":"value","nameLocation":"21541:5:28","nodeType":"VariableDeclaration","scope":6500,"src":"21534:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6476,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:28"},"returnParameters":{"id":6481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6480,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:28","nodeType":"VariableDeclaration","scope":6500,"src":"21571:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":6479,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:28","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:28"},"scope":7139,"src":"21516:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6525,"nodeType":"Block","src":"22137:150:28","statements":[{"expression":{"id":6513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6508,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"22147:10:28","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6511,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"22167:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":6509,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:28","typeDescriptions":{}}},"id":6512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:28","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":6514,"nodeType":"ExpressionStatement","src":"22147:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6515,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6506,"src":"22187:10:28","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"22201:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6524,"nodeType":"IfStatement","src":"22183:98:28","trueBody":{"id":6523,"nodeType":"Block","src":"22208:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":6519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:28","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":6520,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6503,"src":"22264:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6518,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"22229:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6522,"nodeType":"RevertStatement","src":"22222:48:28"}]}}]},"documentation":{"id":6501,"nodeType":"StructuredDocumentation","src":"21746:312:28","text":" @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits"},"id":6526,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:28","nodeType":"FunctionDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6503,"mutability":"mutable","name":"value","nameLocation":"22088:5:28","nodeType":"VariableDeclaration","scope":6526,"src":"22081:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6502,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:28"},"returnParameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:28","nodeType":"VariableDeclaration","scope":6526,"src":"22118:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":6505,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:28","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:28"},"scope":7139,"src":"22063:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6551,"nodeType":"Block","src":"22684:150:28","statements":[{"expression":{"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6534,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"22694:10:28","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6529,"src":"22714:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":6535,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:28","typeDescriptions":{}}},"id":6538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:28","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":6540,"nodeType":"ExpressionStatement","src":"22694:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6541,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"22734:10:28","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6529,"src":"22748:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6550,"nodeType":"IfStatement","src":"22730:98:28","trueBody":{"id":6549,"nodeType":"Block","src":"22755:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":6545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:28","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":6546,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6529,"src":"22811:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6544,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"22776:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6548,"nodeType":"RevertStatement","src":"22769:48:28"}]}}]},"documentation":{"id":6527,"nodeType":"StructuredDocumentation","src":"22293:312:28","text":" @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits"},"id":6552,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:28","nodeType":"FunctionDefinition","parameters":{"id":6530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6529,"mutability":"mutable","name":"value","nameLocation":"22635:5:28","nodeType":"VariableDeclaration","scope":6552,"src":"22628:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6528,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:28"},"returnParameters":{"id":6533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6532,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:28","nodeType":"VariableDeclaration","scope":6552,"src":"22665:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":6531,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:28","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:28"},"scope":7139,"src":"22610:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6577,"nodeType":"Block","src":"23231:150:28","statements":[{"expression":{"id":6565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6560,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6558,"src":"23241:10:28","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6555,"src":"23261:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":6561,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:28","typeDescriptions":{}}},"id":6564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:28","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":6566,"nodeType":"ExpressionStatement","src":"23241:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6567,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6558,"src":"23281:10:28","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6568,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6555,"src":"23295:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6576,"nodeType":"IfStatement","src":"23277:98:28","trueBody":{"id":6575,"nodeType":"Block","src":"23302:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":6571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:28","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":6572,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6555,"src":"23358:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6570,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"23323:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6574,"nodeType":"RevertStatement","src":"23316:48:28"}]}}]},"documentation":{"id":6553,"nodeType":"StructuredDocumentation","src":"22840:312:28","text":" @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits"},"id":6578,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:28","nodeType":"FunctionDefinition","parameters":{"id":6556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6555,"mutability":"mutable","name":"value","nameLocation":"23182:5:28","nodeType":"VariableDeclaration","scope":6578,"src":"23175:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6554,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:28"},"returnParameters":{"id":6559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6558,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:28","nodeType":"VariableDeclaration","scope":6578,"src":"23212:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":6557,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:28","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:28"},"scope":7139,"src":"23157:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6603,"nodeType":"Block","src":"23778:150:28","statements":[{"expression":{"id":6591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6586,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"23788:10:28","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6589,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"23808:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":6587,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:28","typeDescriptions":{}}},"id":6590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:28","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":6592,"nodeType":"ExpressionStatement","src":"23788:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6593,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"23828:10:28","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6594,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"23842:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6602,"nodeType":"IfStatement","src":"23824:98:28","trueBody":{"id":6601,"nodeType":"Block","src":"23849:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":6597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:28","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":6598,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6581,"src":"23905:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6596,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"23870:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6600,"nodeType":"RevertStatement","src":"23863:48:28"}]}}]},"documentation":{"id":6579,"nodeType":"StructuredDocumentation","src":"23387:312:28","text":" @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits"},"id":6604,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:28","nodeType":"FunctionDefinition","parameters":{"id":6582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6581,"mutability":"mutable","name":"value","nameLocation":"23729:5:28","nodeType":"VariableDeclaration","scope":6604,"src":"23722:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6580,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:28"},"returnParameters":{"id":6585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6584,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:28","nodeType":"VariableDeclaration","scope":6604,"src":"23759:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":6583,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:28","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:28"},"scope":7139,"src":"23704:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6629,"nodeType":"Block","src":"24325:150:28","statements":[{"expression":{"id":6617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6612,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6610,"src":"24335:10:28","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"24355:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":6613,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:28","typeDescriptions":{}}},"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:28","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":6618,"nodeType":"ExpressionStatement","src":"24335:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6619,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6610,"src":"24375:10:28","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6620,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"24389:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6628,"nodeType":"IfStatement","src":"24371:98:28","trueBody":{"id":6627,"nodeType":"Block","src":"24396:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":6623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:28","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":6624,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6607,"src":"24452:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6622,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"24417:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6626,"nodeType":"RevertStatement","src":"24410:48:28"}]}}]},"documentation":{"id":6605,"nodeType":"StructuredDocumentation","src":"23934:312:28","text":" @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits"},"id":6630,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:28","nodeType":"FunctionDefinition","parameters":{"id":6608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"value","nameLocation":"24276:5:28","nodeType":"VariableDeclaration","scope":6630,"src":"24269:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6606,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:28"},"returnParameters":{"id":6611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6610,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:28","nodeType":"VariableDeclaration","scope":6630,"src":"24306:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":6609,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:28","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:28"},"scope":7139,"src":"24251:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6655,"nodeType":"Block","src":"24872:150:28","statements":[{"expression":{"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6638,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6636,"src":"24882:10:28","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"24902:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":6639,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:28","typeDescriptions":{}}},"id":6642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:28","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":6644,"nodeType":"ExpressionStatement","src":"24882:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6645,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6636,"src":"24922:10:28","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6646,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"24936:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6654,"nodeType":"IfStatement","src":"24918:98:28","trueBody":{"id":6653,"nodeType":"Block","src":"24943:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":6649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:28","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":6650,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"24999:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6648,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"24964:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6652,"nodeType":"RevertStatement","src":"24957:48:28"}]}}]},"documentation":{"id":6631,"nodeType":"StructuredDocumentation","src":"24481:312:28","text":" @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits"},"id":6656,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:28","nodeType":"FunctionDefinition","parameters":{"id":6634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"value","nameLocation":"24823:5:28","nodeType":"VariableDeclaration","scope":6656,"src":"24816:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6632,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:28"},"returnParameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6636,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:28","nodeType":"VariableDeclaration","scope":6656,"src":"24853:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":6635,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:28","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:28"},"scope":7139,"src":"24798:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6681,"nodeType":"Block","src":"25419:150:28","statements":[{"expression":{"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6664,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"25429:10:28","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6659,"src":"25449:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":6665,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:28","typeDescriptions":{}}},"id":6668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:28","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":6670,"nodeType":"ExpressionStatement","src":"25429:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6671,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6662,"src":"25469:10:28","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6672,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6659,"src":"25483:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6680,"nodeType":"IfStatement","src":"25465:98:28","trueBody":{"id":6679,"nodeType":"Block","src":"25490:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":6675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:28","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":6676,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6659,"src":"25546:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6674,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"25511:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6678,"nodeType":"RevertStatement","src":"25504:48:28"}]}}]},"documentation":{"id":6657,"nodeType":"StructuredDocumentation","src":"25028:312:28","text":" @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits"},"id":6682,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:28","nodeType":"FunctionDefinition","parameters":{"id":6660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6659,"mutability":"mutable","name":"value","nameLocation":"25370:5:28","nodeType":"VariableDeclaration","scope":6682,"src":"25363:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6658,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:28"},"returnParameters":{"id":6663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6662,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:28","nodeType":"VariableDeclaration","scope":6682,"src":"25400:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":6661,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:28","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:28"},"scope":7139,"src":"25345:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6707,"nodeType":"Block","src":"25966:150:28","statements":[{"expression":{"id":6695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6690,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6688,"src":"25976:10:28","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6693,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"25996:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":6691,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:28","typeDescriptions":{}}},"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:28","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":6696,"nodeType":"ExpressionStatement","src":"25976:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6697,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6688,"src":"26016:10:28","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6698,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"26030:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6706,"nodeType":"IfStatement","src":"26012:98:28","trueBody":{"id":6705,"nodeType":"Block","src":"26037:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":6701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:28","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":6702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6685,"src":"26093:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6700,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"26058:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6704,"nodeType":"RevertStatement","src":"26051:48:28"}]}}]},"documentation":{"id":6683,"nodeType":"StructuredDocumentation","src":"25575:312:28","text":" @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits"},"id":6708,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:28","nodeType":"FunctionDefinition","parameters":{"id":6686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6685,"mutability":"mutable","name":"value","nameLocation":"25917:5:28","nodeType":"VariableDeclaration","scope":6708,"src":"25910:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6684,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:28"},"returnParameters":{"id":6689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6688,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:28","nodeType":"VariableDeclaration","scope":6708,"src":"25947:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":6687,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:28","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:28"},"scope":7139,"src":"25892:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6733,"nodeType":"Block","src":"26513:150:28","statements":[{"expression":{"id":6721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6716,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6714,"src":"26523:10:28","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6719,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6711,"src":"26543:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":6717,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:28","typeDescriptions":{}}},"id":6720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:28","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":6722,"nodeType":"ExpressionStatement","src":"26523:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6723,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6714,"src":"26563:10:28","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6711,"src":"26577:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6732,"nodeType":"IfStatement","src":"26559:98:28","trueBody":{"id":6731,"nodeType":"Block","src":"26584:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":6727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:28","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":6728,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6711,"src":"26640:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6726,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"26605:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6730,"nodeType":"RevertStatement","src":"26598:48:28"}]}}]},"documentation":{"id":6709,"nodeType":"StructuredDocumentation","src":"26122:312:28","text":" @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits"},"id":6734,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:28","nodeType":"FunctionDefinition","parameters":{"id":6712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6711,"mutability":"mutable","name":"value","nameLocation":"26464:5:28","nodeType":"VariableDeclaration","scope":6734,"src":"26457:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6710,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:28"},"returnParameters":{"id":6715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6714,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:28","nodeType":"VariableDeclaration","scope":6734,"src":"26494:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":6713,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:28","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:28"},"scope":7139,"src":"26439:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6759,"nodeType":"Block","src":"27060:150:28","statements":[{"expression":{"id":6747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6742,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6740,"src":"27070:10:28","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"27090:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":6743,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:28","typeDescriptions":{}}},"id":6746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:28","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":6748,"nodeType":"ExpressionStatement","src":"27070:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6749,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6740,"src":"27110:10:28","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6750,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"27124:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6758,"nodeType":"IfStatement","src":"27106:98:28","trueBody":{"id":6757,"nodeType":"Block","src":"27131:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":6753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:28","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":6754,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"27187:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6752,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"27152:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6756,"nodeType":"RevertStatement","src":"27145:48:28"}]}}]},"documentation":{"id":6735,"nodeType":"StructuredDocumentation","src":"26669:312:28","text":" @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits"},"id":6760,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:28","nodeType":"FunctionDefinition","parameters":{"id":6738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"mutability":"mutable","name":"value","nameLocation":"27011:5:28","nodeType":"VariableDeclaration","scope":6760,"src":"27004:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6736,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:28"},"returnParameters":{"id":6741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6740,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:28","nodeType":"VariableDeclaration","scope":6760,"src":"27041:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":6739,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:28","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:28"},"scope":7139,"src":"26986:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6785,"nodeType":"Block","src":"27607:150:28","statements":[{"expression":{"id":6773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6768,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6766,"src":"27617:10:28","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"27637:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":6769,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:28","typeDescriptions":{}}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:28","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":6774,"nodeType":"ExpressionStatement","src":"27617:26:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6775,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6766,"src":"27657:10:28","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6776,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"27671:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6784,"nodeType":"IfStatement","src":"27653:98:28","trueBody":{"id":6783,"nodeType":"Block","src":"27678:73:28","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":6779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:28","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":6780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"27734:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6778,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"27699:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6782,"nodeType":"RevertStatement","src":"27692:48:28"}]}}]},"documentation":{"id":6761,"nodeType":"StructuredDocumentation","src":"27216:312:28","text":" @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits"},"id":6786,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:28","nodeType":"FunctionDefinition","parameters":{"id":6764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6763,"mutability":"mutable","name":"value","nameLocation":"27558:5:28","nodeType":"VariableDeclaration","scope":6786,"src":"27551:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6762,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:28"},"returnParameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6766,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:28","nodeType":"VariableDeclaration","scope":6786,"src":"27588:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":6765,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:28","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:28"},"scope":7139,"src":"27533:224:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6811,"nodeType":"Block","src":"28147:148:28","statements":[{"expression":{"id":6799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6794,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"28157:10:28","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6797,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6789,"src":"28176:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":6795,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:28","typeDescriptions":{}}},"id":6798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:28","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":6800,"nodeType":"ExpressionStatement","src":"28157:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6801,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"28196:10:28","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6802,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6789,"src":"28210:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6810,"nodeType":"IfStatement","src":"28192:97:28","trueBody":{"id":6809,"nodeType":"Block","src":"28217:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":6805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:28","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":6806,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6789,"src":"28272:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6804,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"28238:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6808,"nodeType":"RevertStatement","src":"28231:47:28"}]}}]},"documentation":{"id":6787,"nodeType":"StructuredDocumentation","src":"27763:307:28","text":" @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits"},"id":6812,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:28","nodeType":"FunctionDefinition","parameters":{"id":6790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6789,"mutability":"mutable","name":"value","nameLocation":"28099:5:28","nodeType":"VariableDeclaration","scope":6812,"src":"28092:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6788,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:28"},"returnParameters":{"id":6793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6792,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:28","nodeType":"VariableDeclaration","scope":6812,"src":"28129:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":6791,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:28","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:28"},"scope":7139,"src":"28075:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6837,"nodeType":"Block","src":"28685:148:28","statements":[{"expression":{"id":6825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6820,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6818,"src":"28695:10:28","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"28714:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":6821,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:28","typeDescriptions":{}}},"id":6824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:28","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":6826,"nodeType":"ExpressionStatement","src":"28695:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6827,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6818,"src":"28734:10:28","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"28748:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6836,"nodeType":"IfStatement","src":"28730:97:28","trueBody":{"id":6835,"nodeType":"Block","src":"28755:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":6831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:28","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":6832,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"28810:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6830,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"28776:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6834,"nodeType":"RevertStatement","src":"28769:47:28"}]}}]},"documentation":{"id":6813,"nodeType":"StructuredDocumentation","src":"28301:307:28","text":" @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits"},"id":6838,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:28","nodeType":"FunctionDefinition","parameters":{"id":6816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6815,"mutability":"mutable","name":"value","nameLocation":"28637:5:28","nodeType":"VariableDeclaration","scope":6838,"src":"28630:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6814,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:28"},"returnParameters":{"id":6819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6818,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:28","nodeType":"VariableDeclaration","scope":6838,"src":"28667:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":6817,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:28","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:28"},"scope":7139,"src":"28613:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6863,"nodeType":"Block","src":"29223:148:28","statements":[{"expression":{"id":6851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6846,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6844,"src":"29233:10:28","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6849,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6841,"src":"29252:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":6847,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:28","typeDescriptions":{}}},"id":6850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:28","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":6852,"nodeType":"ExpressionStatement","src":"29233:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6853,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6844,"src":"29272:10:28","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6841,"src":"29286:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6862,"nodeType":"IfStatement","src":"29268:97:28","trueBody":{"id":6861,"nodeType":"Block","src":"29293:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":6857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:28","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":6858,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6841,"src":"29348:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6856,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"29314:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6860,"nodeType":"RevertStatement","src":"29307:47:28"}]}}]},"documentation":{"id":6839,"nodeType":"StructuredDocumentation","src":"28839:307:28","text":" @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits"},"id":6864,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:28","nodeType":"FunctionDefinition","parameters":{"id":6842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6841,"mutability":"mutable","name":"value","nameLocation":"29175:5:28","nodeType":"VariableDeclaration","scope":6864,"src":"29168:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6840,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:28"},"returnParameters":{"id":6845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6844,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:28","nodeType":"VariableDeclaration","scope":6864,"src":"29205:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":6843,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:28","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:28"},"scope":7139,"src":"29151:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6889,"nodeType":"Block","src":"29761:148:28","statements":[{"expression":{"id":6877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6872,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6870,"src":"29771:10:28","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6875,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"29790:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":6873,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:28","typeDescriptions":{}}},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:28","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":6878,"nodeType":"ExpressionStatement","src":"29771:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6879,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6870,"src":"29810:10:28","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"29824:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6888,"nodeType":"IfStatement","src":"29806:97:28","trueBody":{"id":6887,"nodeType":"Block","src":"29831:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:28","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":6884,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"29886:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6882,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"29852:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6886,"nodeType":"RevertStatement","src":"29845:47:28"}]}}]},"documentation":{"id":6865,"nodeType":"StructuredDocumentation","src":"29377:307:28","text":" @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits"},"id":6890,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:28","nodeType":"FunctionDefinition","parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"value","nameLocation":"29713:5:28","nodeType":"VariableDeclaration","scope":6890,"src":"29706:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6866,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:28"},"returnParameters":{"id":6871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6870,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:28","nodeType":"VariableDeclaration","scope":6890,"src":"29743:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":6869,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:28","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:28"},"scope":7139,"src":"29689:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6915,"nodeType":"Block","src":"30299:148:28","statements":[{"expression":{"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6898,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"30309:10:28","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6901,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"30328:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":6899,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:28","typeDescriptions":{}}},"id":6902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:28","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":6904,"nodeType":"ExpressionStatement","src":"30309:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6905,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6896,"src":"30348:10:28","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"30362:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6914,"nodeType":"IfStatement","src":"30344:97:28","trueBody":{"id":6913,"nodeType":"Block","src":"30369:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":6909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:28","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":6910,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"30424:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6908,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"30390:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6912,"nodeType":"RevertStatement","src":"30383:47:28"}]}}]},"documentation":{"id":6891,"nodeType":"StructuredDocumentation","src":"29915:307:28","text":" @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits"},"id":6916,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:28","nodeType":"FunctionDefinition","parameters":{"id":6894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6893,"mutability":"mutable","name":"value","nameLocation":"30251:5:28","nodeType":"VariableDeclaration","scope":6916,"src":"30244:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6892,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:28"},"returnParameters":{"id":6897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6896,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:28","nodeType":"VariableDeclaration","scope":6916,"src":"30281:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":6895,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:28","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:28"},"scope":7139,"src":"30227:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6941,"nodeType":"Block","src":"30837:148:28","statements":[{"expression":{"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6924,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6922,"src":"30847:10:28","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"30866:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":6925,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:28","typeDescriptions":{}}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:28","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":6930,"nodeType":"ExpressionStatement","src":"30847:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6931,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6922,"src":"30886:10:28","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6932,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"30900:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6940,"nodeType":"IfStatement","src":"30882:97:28","trueBody":{"id":6939,"nodeType":"Block","src":"30907:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":6935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:28","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":6936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"30962:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6934,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"30928:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6938,"nodeType":"RevertStatement","src":"30921:47:28"}]}}]},"documentation":{"id":6917,"nodeType":"StructuredDocumentation","src":"30453:307:28","text":" @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits"},"id":6942,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:28","nodeType":"FunctionDefinition","parameters":{"id":6920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6919,"mutability":"mutable","name":"value","nameLocation":"30789:5:28","nodeType":"VariableDeclaration","scope":6942,"src":"30782:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6918,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:28"},"returnParameters":{"id":6923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6922,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:28","nodeType":"VariableDeclaration","scope":6942,"src":"30819:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":6921,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:28","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:28"},"scope":7139,"src":"30765:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6967,"nodeType":"Block","src":"31375:148:28","statements":[{"expression":{"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6950,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6948,"src":"31385:10:28","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6953,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"31404:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":6951,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:28","typeDescriptions":{}}},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:28","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":6956,"nodeType":"ExpressionStatement","src":"31385:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6957,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6948,"src":"31424:10:28","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6958,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"31438:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6966,"nodeType":"IfStatement","src":"31420:97:28","trueBody":{"id":6965,"nodeType":"Block","src":"31445:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":6961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:28","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":6962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6945,"src":"31500:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6960,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"31466:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6964,"nodeType":"RevertStatement","src":"31459:47:28"}]}}]},"documentation":{"id":6943,"nodeType":"StructuredDocumentation","src":"30991:307:28","text":" @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits"},"id":6968,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:28","nodeType":"FunctionDefinition","parameters":{"id":6946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6945,"mutability":"mutable","name":"value","nameLocation":"31327:5:28","nodeType":"VariableDeclaration","scope":6968,"src":"31320:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6944,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:28"},"returnParameters":{"id":6949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6948,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:28","nodeType":"VariableDeclaration","scope":6968,"src":"31357:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":6947,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:28","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:28"},"scope":7139,"src":"31303:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6993,"nodeType":"Block","src":"31913:148:28","statements":[{"expression":{"id":6981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6976,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6974,"src":"31923:10:28","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"31942:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":6977,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:28","typeDescriptions":{}}},"id":6980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:28","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":6982,"nodeType":"ExpressionStatement","src":"31923:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6983,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6974,"src":"31962:10:28","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"31976:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6992,"nodeType":"IfStatement","src":"31958:97:28","trueBody":{"id":6991,"nodeType":"Block","src":"31983:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":6987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:28","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":6988,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6971,"src":"32038:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6986,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"32004:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6990,"nodeType":"RevertStatement","src":"31997:47:28"}]}}]},"documentation":{"id":6969,"nodeType":"StructuredDocumentation","src":"31529:307:28","text":" @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits"},"id":6994,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:28","nodeType":"FunctionDefinition","parameters":{"id":6972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6971,"mutability":"mutable","name":"value","nameLocation":"31865:5:28","nodeType":"VariableDeclaration","scope":6994,"src":"31858:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6970,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:28"},"returnParameters":{"id":6975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6974,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:28","nodeType":"VariableDeclaration","scope":6994,"src":"31895:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":6973,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:28","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:28"},"scope":7139,"src":"31841:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7019,"nodeType":"Block","src":"32451:148:28","statements":[{"expression":{"id":7007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7002,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"32461:10:28","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7005,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6997,"src":"32480:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":7003,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:28","typeDescriptions":{}}},"id":7006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:28","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":7008,"nodeType":"ExpressionStatement","src":"32461:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7009,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"32500:10:28","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6997,"src":"32514:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7018,"nodeType":"IfStatement","src":"32496:97:28","trueBody":{"id":7017,"nodeType":"Block","src":"32521:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":7013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:28","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":7014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6997,"src":"32576:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7012,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"32542:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7016,"nodeType":"RevertStatement","src":"32535:47:28"}]}}]},"documentation":{"id":6995,"nodeType":"StructuredDocumentation","src":"32067:307:28","text":" @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits"},"id":7020,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:28","nodeType":"FunctionDefinition","parameters":{"id":6998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6997,"mutability":"mutable","name":"value","nameLocation":"32403:5:28","nodeType":"VariableDeclaration","scope":7020,"src":"32396:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6996,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:28"},"returnParameters":{"id":7001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7000,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:28","nodeType":"VariableDeclaration","scope":7020,"src":"32433:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":6999,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:28","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:28"},"scope":7139,"src":"32379:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7045,"nodeType":"Block","src":"32989:148:28","statements":[{"expression":{"id":7033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7028,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7026,"src":"32999:10:28","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7031,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7023,"src":"33018:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":7029,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:28","typeDescriptions":{}}},"id":7032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:28","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":7034,"nodeType":"ExpressionStatement","src":"32999:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7035,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7026,"src":"33038:10:28","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7036,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7023,"src":"33052:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7044,"nodeType":"IfStatement","src":"33034:97:28","trueBody":{"id":7043,"nodeType":"Block","src":"33059:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":7039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:28","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":7040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7023,"src":"33114:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7038,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"33080:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7042,"nodeType":"RevertStatement","src":"33073:47:28"}]}}]},"documentation":{"id":7021,"nodeType":"StructuredDocumentation","src":"32605:307:28","text":" @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits"},"id":7046,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:28","nodeType":"FunctionDefinition","parameters":{"id":7024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7023,"mutability":"mutable","name":"value","nameLocation":"32941:5:28","nodeType":"VariableDeclaration","scope":7046,"src":"32934:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7022,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:28"},"returnParameters":{"id":7027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7026,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:28","nodeType":"VariableDeclaration","scope":7046,"src":"32971:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":7025,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:28","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:28"},"scope":7139,"src":"32917:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7071,"nodeType":"Block","src":"33527:148:28","statements":[{"expression":{"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7054,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"33537:10:28","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7057,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7049,"src":"33556:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":7055,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:28","typeDescriptions":{}}},"id":7058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:28","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":7060,"nodeType":"ExpressionStatement","src":"33537:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7061,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7052,"src":"33576:10:28","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7062,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7049,"src":"33590:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7070,"nodeType":"IfStatement","src":"33572:97:28","trueBody":{"id":7069,"nodeType":"Block","src":"33597:72:28","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":7065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:28","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":7066,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7049,"src":"33652:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7064,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"33618:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7068,"nodeType":"RevertStatement","src":"33611:47:28"}]}}]},"documentation":{"id":7047,"nodeType":"StructuredDocumentation","src":"33143:307:28","text":" @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits"},"id":7072,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:28","nodeType":"FunctionDefinition","parameters":{"id":7050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7049,"mutability":"mutable","name":"value","nameLocation":"33479:5:28","nodeType":"VariableDeclaration","scope":7072,"src":"33472:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7048,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:28"},"returnParameters":{"id":7053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7052,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:28","nodeType":"VariableDeclaration","scope":7072,"src":"33509:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":7051,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:28","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:28"},"scope":7139,"src":"33455:220:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7097,"nodeType":"Block","src":"34058:146:28","statements":[{"expression":{"id":7085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7080,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7078,"src":"34068:10:28","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7083,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"34086:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":7081,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:28","typeDescriptions":{}}},"id":7084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:28","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":7086,"nodeType":"ExpressionStatement","src":"34068:24:28"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7087,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7078,"src":"34106:10:28","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"34120:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7096,"nodeType":"IfStatement","src":"34102:96:28","trueBody":{"id":7095,"nodeType":"Block","src":"34127:71:28","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":7091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:28","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":7092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7075,"src":"34181:5:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7090,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5396,"src":"34148:29:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7094,"nodeType":"RevertStatement","src":"34141:46:28"}]}}]},"documentation":{"id":7073,"nodeType":"StructuredDocumentation","src":"33681:302:28","text":" @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits"},"id":7098,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:28","nodeType":"FunctionDefinition","parameters":{"id":7076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7075,"mutability":"mutable","name":"value","nameLocation":"34011:5:28","nodeType":"VariableDeclaration","scope":7098,"src":"34004:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7074,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:28"},"returnParameters":{"id":7079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7078,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:28","nodeType":"VariableDeclaration","scope":7098,"src":"34041:15:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":7077,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:28","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:28"},"scope":7139,"src":"33988:216:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7127,"nodeType":"Block","src":"34444:250:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7106,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7101,"src":"34557:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":7111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":7110,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:28","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":7109,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":7113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:28","memberName":"max","nodeType":"MemberAccess","src":"34573:16:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7107,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:28","typeDescriptions":{}}},"id":7114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7121,"nodeType":"IfStatement","src":"34553:105:28","trueBody":{"id":7120,"nodeType":"Block","src":"34592:66:28","statements":[{"errorCall":{"arguments":[{"id":7117,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7101,"src":"34641:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7116,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"34613:27:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":7118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7119,"nodeType":"RevertStatement","src":"34606:41:28"}]}},{"expression":{"arguments":[{"id":7124,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7101,"src":"34681:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":7122,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:28","typeDescriptions":{}}},"id":7125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":7105,"id":7126,"nodeType":"Return","src":"34667:20:28"}]},"documentation":{"id":7099,"nodeType":"StructuredDocumentation","src":"34210:165:28","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":7128,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:28","nodeType":"FunctionDefinition","parameters":{"id":7102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7101,"mutability":"mutable","name":"value","nameLocation":"34406:5:28","nodeType":"VariableDeclaration","scope":7128,"src":"34398:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7100,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:28"},"returnParameters":{"id":7105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7104,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7128,"src":"34436:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7103,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:28","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:28"},"scope":7139,"src":"34380:314:28","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7137,"nodeType":"Block","src":"34853:87:28","statements":[{"AST":{"nativeSrc":"34888:46:28","nodeType":"YulBlock","src":"34888:46:28","statements":[{"nativeSrc":"34902:22:28","nodeType":"YulAssignment","src":"34902:22:28","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34921:1:28","nodeType":"YulIdentifier","src":"34921:1:28"}],"functionName":{"name":"iszero","nativeSrc":"34914:6:28","nodeType":"YulIdentifier","src":"34914:6:28"},"nativeSrc":"34914:9:28","nodeType":"YulFunctionCall","src":"34914:9:28"}],"functionName":{"name":"iszero","nativeSrc":"34907:6:28","nodeType":"YulIdentifier","src":"34907:6:28"},"nativeSrc":"34907:17:28","nodeType":"YulFunctionCall","src":"34907:17:28"},"variableNames":[{"name":"u","nativeSrc":"34902:1:28","nodeType":"YulIdentifier","src":"34902:1:28"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":7131,"isOffset":false,"isSlot":false,"src":"34921:1:28","valueSize":1},{"declaration":7134,"isOffset":false,"isSlot":false,"src":"34902:1:28","valueSize":1}],"flags":["memory-safe"],"id":7136,"nodeType":"InlineAssembly","src":"34863:71:28"}]},"documentation":{"id":7129,"nodeType":"StructuredDocumentation","src":"34700:90:28","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":7138,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:28","nodeType":"FunctionDefinition","parameters":{"id":7132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7131,"mutability":"mutable","name":"b","nameLocation":"34816:1:28","nodeType":"VariableDeclaration","scope":7138,"src":"34811:6:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7130,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:28"},"returnParameters":{"id":7135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7134,"mutability":"mutable","name":"u","nameLocation":"34850:1:28","nodeType":"VariableDeclaration","scope":7138,"src":"34842:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7133,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:28"},"scope":7139,"src":"34795:145:28","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":7140,"src":"769:34173:28","usedErrors":[5384,5389,5396,5401],"usedEvents":[]}],"src":"192:34751:28"},"id":28},"contracts/DomainMangager/DomainManager.sol":{"ast":{"absolutePath":"contracts/DomainMangager/DomainManager.sol","exportedSymbols":{"DomainManager":[7204],"ISciRegistry":[8112]},"id":7205,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7141,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:29"},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"../SciRegistry/ISciRegistry.sol","id":7143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7205,"sourceUnit":8113,"src":"62:61:29","symbolAliases":[{"foreign":{"id":7142,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"70:12:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"DomainManager","contractDependencies":[],"contractKind":"contract","documentation":{"id":7144,"nodeType":"StructuredDocumentation","src":"125:185:29","text":" @title DomainManager\n @dev Contract module that implement access\n control only to owners of a domain in the SCI Registry.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7204,"linearizedBaseContracts":[7204],"name":"DomainManager","nameLocation":"329:13:29","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":7147,"mutability":"immutable","name":"registry","nameLocation":"379:8:29","nodeType":"VariableDeclaration","scope":7204,"src":"349:38:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"},"typeName":{"id":7146,"nodeType":"UserDefinedTypeName","pathNode":{"id":7145,"name":"ISciRegistry","nameLocations":["349:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":8112,"src":"349:12:29"},"referencedDeclaration":8112,"src":"349:12:29","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"visibility":"public"},{"documentation":{"id":7148,"nodeType":"StructuredDocumentation","src":"394:85:29","text":" @dev Thrown when the `account` is not the owner of the domainhash."},"errorSelector":"2ebb0ef6","id":7154,"name":"AccountIsNotDomainOwner","nameLocation":"490:23:29","nodeType":"ErrorDefinition","parameters":{"id":7153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7150,"mutability":"mutable","name":"account","nameLocation":"522:7:29","nodeType":"VariableDeclaration","scope":7154,"src":"514:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7149,"name":"address","nodeType":"ElementaryTypeName","src":"514:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7152,"mutability":"mutable","name":"domainHash","nameLocation":"539:10:29","nodeType":"VariableDeclaration","scope":7154,"src":"531:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"531:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"513:37:29"},"src":"484:67:29"},{"body":{"id":7167,"nodeType":"Block","src":"862:66:29","statements":[{"expression":{"arguments":[{"id":7162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"890:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7163,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7159,"src":"899:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7161,"name":"_checkDomainOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"872:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) view"}},"id":7164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:38:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7165,"nodeType":"ExpressionStatement","src":"872:38:29"},{"id":7166,"nodeType":"PlaceholderStatement","src":"920:1:29"}]},"documentation":{"id":7155,"nodeType":"StructuredDocumentation","src":"557:238:29","text":" @dev Modifier that checks if the provided address is the owner of the SCI domain.\n @param domainHash The namehash of the domain.\n Note: Reverts with `AccountIsNotDomainOwner` error if the check fails."},"id":7168,"name":"onlyDomainOwner","nameLocation":"809:15:29","nodeType":"ModifierDefinition","parameters":{"id":7160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7157,"mutability":"mutable","name":"account","nameLocation":"833:7:29","nodeType":"VariableDeclaration","scope":7168,"src":"825:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7156,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7159,"mutability":"mutable","name":"domainHash","nameLocation":"850:10:29","nodeType":"VariableDeclaration","scope":7168,"src":"842:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"842:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"824:37:29"},"src":"800:128:29","virtual":false,"visibility":"internal"},{"body":{"id":7180,"nodeType":"Block","src":"1123:54:29","statements":[{"expression":{"id":7178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7174,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7147,"src":"1133:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7176,"name":"_sciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7171,"src":"1157:12:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7175,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"1144:12:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"src":"1133:37:29","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7179,"nodeType":"ExpressionStatement","src":"1133:37:29"}]},"documentation":{"id":7169,"nodeType":"StructuredDocumentation","src":"934:150:29","text":" @dev Initializes the contract with references to the SCI Registry.\n @param _sciRegistry Address of the SCI Registry contract."},"id":7181,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7171,"mutability":"mutable","name":"_sciRegistry","nameLocation":"1109:12:29","nodeType":"VariableDeclaration","scope":7181,"src":"1101:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7170,"name":"address","nodeType":"ElementaryTypeName","src":"1101:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1100:22:29"},"returnParameters":{"id":7173,"nodeType":"ParameterList","parameters":[],"src":"1123:0:29"},"scope":7204,"src":"1089:88:29","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7202,"nodeType":"Block","src":"1543:141:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7191,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"1578:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7189,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7147,"src":"1557:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1566:11:29","memberName":"domainOwner","nodeType":"MemberAccess","referencedDeclaration":8085,"src":"1557:20:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":7192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1557:32:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7193,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"1593:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1557:43:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7201,"nodeType":"IfStatement","src":"1553:125:29","trueBody":{"id":7200,"nodeType":"Block","src":"1602:76:29","statements":[{"errorCall":{"arguments":[{"id":7196,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"1647:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7197,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"1656:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7195,"name":"AccountIsNotDomainOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7154,"src":"1623:23:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":7198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7199,"nodeType":"RevertStatement","src":"1616:51:29"}]}}]},"documentation":{"id":7182,"nodeType":"StructuredDocumentation","src":"1183:278:29","text":" @dev Reverts with an {AccountIsNotDomainOwner} error if the caller\n is not the owner of the domain.\n @param domainHash The namehash of the domain.\n Note: Overriding this function changes the behavior of the {onlyDomainOwner} modifier."},"id":7203,"implemented":true,"kind":"function","modifiers":[],"name":"_checkDomainOwner","nameLocation":"1475:17:29","nodeType":"FunctionDefinition","parameters":{"id":7187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7184,"mutability":"mutable","name":"account","nameLocation":"1501:7:29","nodeType":"VariableDeclaration","scope":7203,"src":"1493:15:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7183,"name":"address","nodeType":"ElementaryTypeName","src":"1493:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7186,"mutability":"mutable","name":"domainHash","nameLocation":"1518:10:29","nodeType":"VariableDeclaration","scope":7203,"src":"1510:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1510:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1492:37:29"},"returnParameters":{"id":7188,"nodeType":"ParameterList","parameters":[],"src":"1543:0:29"},"scope":7204,"src":"1466:218:29","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":7205,"src":"311:1375:29","usedErrors":[7154],"usedEvents":[]}],"src":"37:1650:29"},"id":29},"contracts/Ens/Ens.sol":{"ast":{"absolutePath":"contracts/Ens/Ens.sol","exportedSymbols":{"ENSRegistry":[560]},"id":7209,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7206,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:30"},{"absolutePath":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","file":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol","id":7208,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7209,"sourceUnit":561,"src":"160:89:30","symbolAliases":[{"foreign":{"id":7207,"name":"ENSRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":560,"src":"168:11:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"37:213:30"},"id":30},"contracts/Op/ICrossDomainMessanger.sol":{"ast":{"absolutePath":"contracts/Op/ICrossDomainMessanger.sol","exportedSymbols":{"ICrossDomainMessanger":[7228]},"id":7229,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7210,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:31"},{"abstract":false,"baseContracts":[],"canonicalName":"ICrossDomainMessanger","contractDependencies":[],"contractKind":"interface","documentation":{"id":7211,"nodeType":"StructuredDocumentation","src":"62:174:31","text":" @title ICrossDomainMessanger\n @dev Interface for the Superchain Cross Domain Messenger\n which facilitates sending messages between a source and a target chain."},"fullyImplemented":false,"id":7228,"linearizedBaseContracts":[7228],"name":"ICrossDomainMessanger","nameLocation":"247:21:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7212,"nodeType":"StructuredDocumentation","src":"275:364:31","text":" @dev Sends a message to a target contract on a different chain.\n @param target The address of the target contract on the destination chain.\n @param _message The encoded message data containing function selectors and parameters.\n @param gasLimit The maximum amount of gas allocated for executing the message on the target chain."},"functionSelector":"3dbb202b","id":7221,"implemented":false,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"653:11:31","nodeType":"FunctionDefinition","parameters":{"id":7219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7214,"mutability":"mutable","name":"target","nameLocation":"673:6:31","nodeType":"VariableDeclaration","scope":7221,"src":"665:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7213,"name":"address","nodeType":"ElementaryTypeName","src":"665:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7216,"mutability":"mutable","name":"_message","nameLocation":"696:8:31","nodeType":"VariableDeclaration","scope":7221,"src":"681:23:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7215,"name":"bytes","nodeType":"ElementaryTypeName","src":"681:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7218,"mutability":"mutable","name":"gasLimit","nameLocation":"713:8:31","nodeType":"VariableDeclaration","scope":7221,"src":"706:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7217,"name":"uint32","nodeType":"ElementaryTypeName","src":"706:6:31","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"664:58:31"},"returnParameters":{"id":7220,"nodeType":"ParameterList","parameters":[],"src":"731:0:31"},"scope":7228,"src":"644:88:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7222,"nodeType":"StructuredDocumentation","src":"738:171:31","text":" @dev Retrieves the address of the sender of the cross-domain message.\n @return The address of the entity that originated the cross-domain message."},"functionSelector":"6e296e45","id":7227,"implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"923:20:31","nodeType":"FunctionDefinition","parameters":{"id":7223,"nodeType":"ParameterList","parameters":[],"src":"943:2:31"},"returnParameters":{"id":7226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7227,"src":"969:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7224,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"968:9:31"},"scope":7228,"src":"914:64:31","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7229,"src":"237:743:31","usedErrors":[],"usedEvents":[]}],"src":"37:944:31"},"id":31},"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol":{"ast":{"absolutePath":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol","exportedSymbols":{"AccessControlDefaultAdminRules":[2436],"ICrossDomainMessanger":[7228],"SuperChainAccessControlDefaultAdminRules":[7306]},"id":7307,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7230,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:32"},{"absolutePath":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","file":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","id":7232,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7307,"sourceUnit":2437,"src":"62:124:32","symbolAliases":[{"foreign":{"id":7231,"name":"AccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"70:30:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Op/ICrossDomainMessanger.sol","file":"./ICrossDomainMessanger.sol","id":7234,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7307,"sourceUnit":7229,"src":"187:66:32","symbolAliases":[{"foreign":{"id":7233,"name":"ICrossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"195:21:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7236,"name":"AccessControlDefaultAdminRules","nameLocations":["543:30:32"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"543:30:32"},"id":7237,"nodeType":"InheritanceSpecifier","src":"543:30:32"}],"canonicalName":"SuperChainAccessControlDefaultAdminRules","contractDependencies":[],"contractKind":"contract","documentation":{"id":7235,"nodeType":"StructuredDocumentation","src":"255:234:32","text":" @title SuperChainAccessControlDefaultAdminRules\n @dev This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7306,"linearizedBaseContracts":[7306,2436,1488,3756,3768,2566,2535,1571,3417],"name":"SuperChainAccessControlDefaultAdminRules","nameLocation":"499:40:32","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"095f025e","id":7240,"mutability":"immutable","name":"crossDomainMessanger","nameLocation":"619:20:32","nodeType":"VariableDeclaration","scope":7306,"src":"580:59:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"},"typeName":{"id":7239,"nodeType":"UserDefinedTypeName","pathNode":{"id":7238,"name":"ICrossDomainMessanger","nameLocations":["580:21:32"],"nodeType":"IdentifierPath","referencedDeclaration":7228,"src":"580:21:32"},"referencedDeclaration":7228,"src":"580:21:32","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"visibility":"public"},{"documentation":{"id":7241,"nodeType":"StructuredDocumentation","src":"646:81:32","text":" @dev Thrown when the caller is not the cross domain messanger."},"errorSelector":"a90b4461","id":7245,"name":"InvalidMessageSender","nameLocation":"738:20:32","nodeType":"ErrorDefinition","parameters":{"id":7244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7243,"mutability":"mutable","name":"account","nameLocation":"767:7:32","nodeType":"VariableDeclaration","scope":7245,"src":"759:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7242,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"758:17:32"},"src":"732:44:32"},{"body":{"id":7283,"nodeType":"Block","src":"1021:329:32","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7250,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1035:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1039:6:32","memberName":"sender","nodeType":"MemberAccess","src":"1035:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":7254,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7240,"src":"1057:20:32","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}],"id":7253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1049:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7252,"name":"address","nodeType":"ElementaryTypeName","src":"1049:7:32","typeDescriptions":{}}},"id":7255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1049:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1035:43:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7263,"nodeType":"IfStatement","src":"1031:113:32","trueBody":{"id":7262,"nodeType":"Block","src":"1080:64:32","statements":[{"errorCall":{"arguments":[{"expression":{"id":7258,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1122:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1126:6:32","memberName":"sender","nodeType":"MemberAccess","src":"1122:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7257,"name":"InvalidMessageSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7245,"src":"1101:20:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7261,"nodeType":"RevertStatement","src":"1094:39:32"}]}},{"assignments":[7265],"declarations":[{"constant":false,"id":7265,"mutability":"mutable","name":"account","nameLocation":"1162:7:32","nodeType":"VariableDeclaration","scope":7283,"src":"1154:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7264,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7269,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7266,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7240,"src":"1172:20:32","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1193:20:32","memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":7227,"src":"1172:41:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1154:61:32"},{"condition":{"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1229:23:32","subExpression":{"arguments":[{"id":7271,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"1238:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7272,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7265,"src":"1244:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7270,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"1230:7:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7281,"nodeType":"IfStatement","src":"1225:108:32","trueBody":{"id":7280,"nodeType":"Block","src":"1254:79:32","statements":[{"errorCall":{"arguments":[{"id":7276,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7265,"src":"1308:7:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7277,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"1317:4:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7275,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"1275:32:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":7278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1275:47:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7279,"nodeType":"RevertStatement","src":"1268:54:32"}]}},{"id":7282,"nodeType":"PlaceholderStatement","src":"1342:1:32"}]},"documentation":{"id":7246,"nodeType":"StructuredDocumentation","src":"782:192:32","text":" @dev Modifier that checks that an account on a source chain has a specific role.\n Reverts with an {AccessControlUnauthorizedAccount} error including the required role."},"id":7284,"name":"onlyCrossChainRole","nameLocation":"988:18:32","nodeType":"ModifierDefinition","parameters":{"id":7249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7248,"mutability":"mutable","name":"role","nameLocation":"1015:4:32","nodeType":"VariableDeclaration","scope":7284,"src":"1007:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1007:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1006:14:32"},"src":"979:371:32","virtual":false,"visibility":"internal"},{"body":{"id":7304,"nodeType":"Block","src":"1707:84:32","statements":[{"expression":{"id":7302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7298,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7240,"src":"1717:20:32","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7300,"name":"_crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"1762:21:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7299,"name":"ICrossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"1740:21:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossDomainMessanger_$7228_$","typeString":"type(contract ICrossDomainMessanger)"}},"id":7301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:44:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"src":"1717:67:32","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"id":7303,"nodeType":"ExpressionStatement","src":"1717:67:32"}]},"documentation":{"id":7285,"nodeType":"StructuredDocumentation","src":"1356:157:32","text":" @param _crossDomainMessanger Address of the cross-domain messenger contract.\n @dev See {AccessControlDefaultAdminRules-constructor}."},"id":7305,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7294,"name":"initialDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7289,"src":"1672:12:32","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":7295,"name":"initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7291,"src":"1686:19:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7296,"kind":"baseConstructorSpecifier","modifierName":{"id":7293,"name":"AccessControlDefaultAdminRules","nameLocations":["1641:30:32"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"1641:30:32"},"nodeType":"ModifierInvocation","src":"1641:65:32"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7287,"mutability":"mutable","name":"_crossDomainMessanger","nameLocation":"1547:21:32","nodeType":"VariableDeclaration","scope":7305,"src":"1539:29:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7286,"name":"address","nodeType":"ElementaryTypeName","src":"1539:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7289,"mutability":"mutable","name":"initialDelay","nameLocation":"1585:12:32","nodeType":"VariableDeclaration","scope":7305,"src":"1578:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":7288,"name":"uint48","nodeType":"ElementaryTypeName","src":"1578:6:32","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":7291,"mutability":"mutable","name":"initialDefaultAdmin","nameLocation":"1615:19:32","nodeType":"VariableDeclaration","scope":7305,"src":"1607:27:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7290,"name":"address","nodeType":"ElementaryTypeName","src":"1607:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1529:111:32"},"returnParameters":{"id":7297,"nodeType":"ParameterList","parameters":[],"src":"1707:0:32"},"scope":7306,"src":"1518:273:32","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":7307,"src":"490:1303:32","usedErrors":[1498,1501,2448,2451,2456,5384,7245],"usedEvents":[1510,1519,1528,2463,2466,2473,2476]}],"src":"37:1757:32"},"id":32},"contracts/Op/mocks/MockCrossDomainMessenger.sol":{"ast":{"absolutePath":"contracts/Op/mocks/MockCrossDomainMessenger.sol","exportedSymbols":{"ICrossDomainMessanger":[7228],"MockCrossDomainMessenger":[7420]},"id":7421,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7308,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:33"},{"absolutePath":"contracts/Op/ICrossDomainMessanger.sol","file":"../ICrossDomainMessanger.sol","id":7310,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7421,"sourceUnit":7229,"src":"62:67:33","symbolAliases":[{"foreign":{"id":7309,"name":"ICrossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"70:21:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7312,"name":"ICrossDomainMessanger","nameLocations":["240:21:33"],"nodeType":"IdentifierPath","referencedDeclaration":7228,"src":"240:21:33"},"id":7313,"nodeType":"InheritanceSpecifier","src":"240:21:33"}],"canonicalName":"MockCrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":7311,"nodeType":"StructuredDocumentation","src":"130:73:33","text":"@dev Mock contract for testing cross-domain messaging functionality."},"fullyImplemented":true,"id":7420,"linearizedBaseContracts":[7420,7228],"name":"MockCrossDomainMessenger","nameLocation":"212:24:33","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7315,"mutability":"mutable","name":"xDomainMessageSenderAddress","nameLocation":"284:27:33","nodeType":"VariableDeclaration","scope":7420,"src":"268:43:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7314,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"functionSelector":"e1b0967f","id":7317,"mutability":"mutable","name":"shouldSendMessage","nameLocation":"330:17:33","nodeType":"VariableDeclaration","scope":7420,"src":"318:29:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7316,"name":"bool","nodeType":"ElementaryTypeName","src":"318:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"anonymous":false,"eventSelector":"3ac974344a508e71193447b4a05edfc424d12096fbe794d32e600ec0702fc877","id":7325,"name":"MessageSent","nameLocation":"360:11:33","nodeType":"EventDefinition","parameters":{"id":7324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7319,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"380:6:33","nodeType":"VariableDeclaration","scope":7325,"src":"372:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7318,"name":"address","nodeType":"ElementaryTypeName","src":"372:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7321,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"394:7:33","nodeType":"VariableDeclaration","scope":7325,"src":"388:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7320,"name":"bytes","nodeType":"ElementaryTypeName","src":"388:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7323,"indexed":false,"mutability":"mutable","name":"gasLimit","nameLocation":"410:8:33","nodeType":"VariableDeclaration","scope":7325,"src":"403:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7322,"name":"uint32","nodeType":"ElementaryTypeName","src":"403:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"371:48:33"},"src":"354:66:33"},{"body":{"id":7340,"nodeType":"Block","src":"494:116:33","statements":[{"expression":{"id":7334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7332,"name":"xDomainMessageSenderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7315,"src":"504:27:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7333,"name":"_xDomainMessageSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7327,"src":"534:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"504:51:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7335,"nodeType":"ExpressionStatement","src":"504:51:33"},{"expression":{"id":7338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7336,"name":"shouldSendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7317,"src":"565:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7337,"name":"_shouldSendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7329,"src":"585:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"565:38:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7339,"nodeType":"ExpressionStatement","src":"565:38:33"}]},"id":7341,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7327,"mutability":"mutable","name":"_xDomainMessageSender","nameLocation":"446:21:33","nodeType":"VariableDeclaration","scope":7341,"src":"438:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7326,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7329,"mutability":"mutable","name":"_shouldSendMessage","nameLocation":"474:18:33","nodeType":"VariableDeclaration","scope":7341,"src":"469:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7328,"name":"bool","nodeType":"ElementaryTypeName","src":"469:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"437:56:33"},"returnParameters":{"id":7331,"nodeType":"ParameterList","parameters":[],"src":"494:0:33"},"scope":7420,"src":"426:184:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[7221],"body":{"id":7389,"nodeType":"Block","src":"704:710:33","statements":[{"condition":{"id":7350,"name":"shouldSendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7317,"src":"718:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7382,"nodeType":"IfStatement","src":"714:640:33","trueBody":{"id":7381,"nodeType":"Block","src":"737:617:33","statements":[{"assignments":[7352,7354],"declarations":[{"constant":false,"id":7352,"mutability":"mutable","name":"success","nameLocation":"757:7:33","nodeType":"VariableDeclaration","scope":7381,"src":"752:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7351,"name":"bool","nodeType":"ElementaryTypeName","src":"752:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7354,"mutability":"mutable","name":"result","nameLocation":"779:6:33","nodeType":"VariableDeclaration","scope":7381,"src":"766:19:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7353,"name":"bytes","nodeType":"ElementaryTypeName","src":"766:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7364,"initialValue":{"arguments":[{"id":7362,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"825:8:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":7355,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"789:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"796:4:33","memberName":"call","nodeType":"MemberAccess","src":"789:11:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"arguments":[{"id":7359,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7347,"src":"814:8:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":7358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"806:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7357,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:33","typeDescriptions":{}}},"id":7360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:17:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"789:35:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":7363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"789:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"751:83:33"},{"condition":{"id":7366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"853:8:33","subExpression":{"id":7365,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7352,"src":"854:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7380,"nodeType":"IfStatement","src":"849:495:33","trueBody":{"id":7379,"nodeType":"Block","src":"863:481:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7367,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"952:6:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:6:33","memberName":"length","nodeType":"MemberAccess","src":"952:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"968:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"952:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7377,"nodeType":"Block","src":"1253:77:33","statements":[{"expression":{"arguments":[{"hexValue":"43616c6c206661696c656420776974686f757420726561736f6e","id":7374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1282:28:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620","typeString":"literal_string \"Call failed without reason\""},"value":"Call failed without reason"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620","typeString":"literal_string \"Call failed without reason\""}],"id":7373,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1275:6:33","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1275:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7376,"nodeType":"ExpressionStatement","src":"1275:36:33"}]},"id":7378,"nodeType":"IfStatement","src":"948:382:33","trueBody":{"id":7372,"nodeType":"Block","src":"971:276:33","statements":[{"AST":{"nativeSrc":"1080:149:33","nodeType":"YulBlock","src":"1080:149:33","statements":[{"nativeSrc":"1106:36:33","nodeType":"YulVariableDeclaration","src":"1106:36:33","value":{"arguments":[{"name":"result","nativeSrc":"1135:6:33","nodeType":"YulIdentifier","src":"1135:6:33"}],"functionName":{"name":"mload","nativeSrc":"1129:5:33","nodeType":"YulIdentifier","src":"1129:5:33"},"nativeSrc":"1129:13:33","nodeType":"YulFunctionCall","src":"1129:13:33"},"variables":[{"name":"returndata_size","nativeSrc":"1110:15:33","nodeType":"YulTypedName","src":"1110:15:33","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"1178:6:33","nodeType":"YulIdentifier","src":"1178:6:33"},{"kind":"number","nativeSrc":"1186:2:33","nodeType":"YulLiteral","src":"1186:2:33","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1174:3:33","nodeType":"YulIdentifier","src":"1174:3:33"},"nativeSrc":"1174:15:33","nodeType":"YulFunctionCall","src":"1174:15:33"},{"name":"returndata_size","nativeSrc":"1191:15:33","nodeType":"YulIdentifier","src":"1191:15:33"}],"functionName":{"name":"revert","nativeSrc":"1167:6:33","nodeType":"YulIdentifier","src":"1167:6:33"},"nativeSrc":"1167:40:33","nodeType":"YulFunctionCall","src":"1167:40:33"},"nativeSrc":"1167:40:33","nodeType":"YulExpressionStatement","src":"1167:40:33"}]},"evmVersion":"paris","externalReferences":[{"declaration":7354,"isOffset":false,"isSlot":false,"src":"1135:6:33","valueSize":1},{"declaration":7354,"isOffset":false,"isSlot":false,"src":"1178:6:33","valueSize":1}],"id":7371,"nodeType":"InlineAssembly","src":"1071:158:33"}]}}]}}]}},{"eventCall":{"arguments":[{"id":7384,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"1380:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7385,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"1388:8:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":7386,"name":"gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7347,"src":"1398:8:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":7383,"name":"MessageSent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7325,"src":"1368:11:33","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32)"}},"id":7387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:39:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7388,"nodeType":"EmitStatement","src":"1363:44:33"}]},"functionSelector":"3dbb202b","id":7390,"implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"625:11:33","nodeType":"FunctionDefinition","parameters":{"id":7348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7343,"mutability":"mutable","name":"target","nameLocation":"645:6:33","nodeType":"VariableDeclaration","scope":7390,"src":"637:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7342,"name":"address","nodeType":"ElementaryTypeName","src":"637:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7345,"mutability":"mutable","name":"_message","nameLocation":"668:8:33","nodeType":"VariableDeclaration","scope":7390,"src":"653:23:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":7344,"name":"bytes","nodeType":"ElementaryTypeName","src":"653:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7347,"mutability":"mutable","name":"gasLimit","nameLocation":"685:8:33","nodeType":"VariableDeclaration","scope":7390,"src":"678:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7346,"name":"uint32","nodeType":"ElementaryTypeName","src":"678:6:33","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"636:58:33"},"returnParameters":{"id":7349,"nodeType":"ParameterList","parameters":[],"src":"704:0:33"},"scope":7420,"src":"616:798:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[7227],"body":{"id":7398,"nodeType":"Block","src":"1493:51:33","statements":[{"expression":{"id":7396,"name":"xDomainMessageSenderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7315,"src":"1510:27:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7395,"id":7397,"nodeType":"Return","src":"1503:34:33"}]},"functionSelector":"6e296e45","id":7399,"implemented":true,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"1429:20:33","nodeType":"FunctionDefinition","overrides":{"id":7392,"nodeType":"OverrideSpecifier","overrides":[],"src":"1466:8:33"},"parameters":{"id":7391,"nodeType":"ParameterList","parameters":[],"src":"1449:2:33"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7399,"src":"1484:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7393,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1483:9:33"},"scope":7420,"src":"1420:124:33","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7408,"nodeType":"Block","src":"1637:75:33","statements":[{"expression":{"id":7406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7404,"name":"xDomainMessageSenderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7315,"src":"1647:27:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7405,"name":"_xDomainMessageSenderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7401,"src":"1677:28:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1647:58:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7407,"nodeType":"ExpressionStatement","src":"1647:58:33"}]},"functionSelector":"b892c533","id":7409,"implemented":true,"kind":"function","modifiers":[],"name":"setXDomainMessageSenderAddress","nameLocation":"1559:30:33","nodeType":"FunctionDefinition","parameters":{"id":7402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7401,"mutability":"mutable","name":"_xDomainMessageSenderAddress","nameLocation":"1598:28:33","nodeType":"VariableDeclaration","scope":7409,"src":"1590:36:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7400,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1589:38:33"},"returnParameters":{"id":7403,"nodeType":"ParameterList","parameters":[],"src":"1637:0:33"},"scope":7420,"src":"1550:162:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7418,"nodeType":"Block","src":"1782:55:33","statements":[{"expression":{"id":7416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7414,"name":"shouldSendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7317,"src":"1792:17:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7415,"name":"_shouldSendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7411,"src":"1812:18:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1792:38:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7417,"nodeType":"ExpressionStatement","src":"1792:38:33"}]},"functionSelector":"8634fbeb","id":7419,"implemented":true,"kind":"function","modifiers":[],"name":"setShouldSendMessage","nameLocation":"1727:20:33","nodeType":"FunctionDefinition","parameters":{"id":7412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7411,"mutability":"mutable","name":"_shouldSendMessage","nameLocation":"1753:18:33","nodeType":"VariableDeclaration","scope":7419,"src":"1748:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7410,"name":"bool","nodeType":"ElementaryTypeName","src":"1748:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1747:25:33"},"returnParameters":{"id":7413,"nodeType":"ParameterList","parameters":[],"src":"1782:0:33"},"scope":7420,"src":"1718:119:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7421,"src":"203:1636:33","usedErrors":[],"usedEvents":[7325]}],"src":"37:1803:33"},"id":33},"contracts/Proxy/Proxy.sol":{"ast":{"absolutePath":"contracts/Proxy/Proxy.sol","exportedSymbols":{"ProxyAdmin":[2992],"TransparentUpgradeableProxy":[3128]},"id":7427,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":7422,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"39:23:34"},{"absolutePath":"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol","file":"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol","id":7424,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7427,"sourceUnit":2993,"src":"238:84:34","symbolAliases":[{"foreign":{"id":7423,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2992,"src":"246:10:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","file":"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":7426,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7427,"sourceUnit":3129,"src":"323:118:34","symbolAliases":[{"foreign":{"id":7425,"name":"TransparentUpgradeableProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"331:27:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}],"src":"39:403:34"},"id":34},"contracts/Registrars/EnsRegistrar.sol":{"ast":{"absolutePath":"contracts/Registrars/EnsRegistrar.sol","exportedSymbols":{"ENS":[136],"EnsRegistrar":[7545],"IVerifier":[8474],"SuperChainSourceRegistrar":[7720]},"id":7546,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7428,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:35"},{"absolutePath":"@ensdomains/ens-contracts/contracts/registry/ENS.sol","file":"@ensdomains/ens-contracts/contracts/registry/ENS.sol","id":7430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7546,"sourceUnit":137,"src":"62:73:35","symbolAliases":[{"foreign":{"id":7429,"name":"ENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"70:3:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":7432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7546,"sourceUnit":8475,"src":"136:53:35","symbolAliases":[{"foreign":{"id":7431,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"144:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Registrars/SuperChainSourceRegistrar.sol","file":"./SuperChainSourceRegistrar.sol","id":7434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7546,"sourceUnit":7721,"src":"190:74:35","symbolAliases":[{"foreign":{"id":7433,"name":"SuperChainSourceRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7720,"src":"198:25:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7436,"name":"SuperChainSourceRegistrar","nameLocations":["640:25:35"],"nodeType":"IdentifierPath","referencedDeclaration":7720,"src":"640:25:35"},"id":7437,"nodeType":"InheritanceSpecifier","src":"640:25:35"}],"canonicalName":"EnsRegistrar","contractDependencies":[],"contractKind":"contract","documentation":{"id":7435,"nodeType":"StructuredDocumentation","src":"266:348:35","text":" @title EnsRegistrar\n @dev This contract allows owners of an ENS (Ethereum Name Service) domain to register it\n in the SCI Registry contract.\n The contract ensures that only the legitimate ENS owner can register a domain\n by verifying the domain ownership through the ENS contract.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7545,"linearizedBaseContracts":[7545,7720],"name":"EnsRegistrar","nameLocation":"624:12:35","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7d73b231","id":7440,"mutability":"immutable","name":"ensRegistry","nameLocation":"693:11:35","nodeType":"VariableDeclaration","scope":7545,"src":"672:32:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"},"typeName":{"id":7439,"nodeType":"UserDefinedTypeName","pathNode":{"id":7438,"name":"ENS","nameLocations":["672:3:35"],"nodeType":"IdentifierPath","referencedDeclaration":136,"src":"672:3:35"},"referencedDeclaration":136,"src":"672:3:35","typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"}},"visibility":"public"},{"documentation":{"id":7441,"nodeType":"StructuredDocumentation","src":"711:91:35","text":" @dev Thrown when the `account` is not the owner of the ENS `domainhash`."},"errorSelector":"36b85210","id":7447,"name":"AccountIsNotEnsOwner","nameLocation":"813:20:35","nodeType":"ErrorDefinition","parameters":{"id":7446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7443,"mutability":"mutable","name":"account","nameLocation":"842:7:35","nodeType":"VariableDeclaration","scope":7447,"src":"834:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7442,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7445,"mutability":"mutable","name":"domainHash","nameLocation":"859:10:35","nodeType":"VariableDeclaration","scope":7447,"src":"851:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"851:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"833:37:35"},"src":"807:64:35"},{"body":{"id":7460,"nodeType":"Block","src":"1239:63:35","statements":[{"expression":{"arguments":[{"id":7455,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7450,"src":"1264:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7456,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7452,"src":"1273:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7454,"name":"_checkEnsOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7544,"src":"1249:14:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) view"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:35:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7458,"nodeType":"ExpressionStatement","src":"1249:35:35"},{"id":7459,"nodeType":"PlaceholderStatement","src":"1294:1:35"}]},"documentation":{"id":7448,"nodeType":"StructuredDocumentation","src":"877:298:35","text":" @dev Modifier that checks if the provided `account` is the owner of the `domainhash`.\n @param account Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n Note: Reverts with `AccountIsNotEnsOwner` error if the check fails."},"id":7461,"name":"onlyEnsOwner","nameLocation":"1189:12:35","nodeType":"ModifierDefinition","parameters":{"id":7453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7450,"mutability":"mutable","name":"account","nameLocation":"1210:7:35","nodeType":"VariableDeclaration","scope":7461,"src":"1202:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7449,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7452,"mutability":"mutable","name":"domainHash","nameLocation":"1227:10:35","nodeType":"VariableDeclaration","scope":7461,"src":"1219:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1219:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1201:37:35"},"src":"1180:122:35","virtual":false,"visibility":"internal"},{"body":{"id":7481,"nodeType":"Block","src":"1828:48:35","statements":[{"expression":{"id":7479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7475,"name":"ensRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"1838:11:35","typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7477,"name":"_ensRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7464,"src":"1856:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7476,"name":"ENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"1852:3:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENS_$136_$","typeString":"type(contract ENS)"}},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1852:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"}},"src":"1838:31:35","typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"}},"id":7480,"nodeType":"ExpressionStatement","src":"1838:31:35"}]},"documentation":{"id":7462,"nodeType":"StructuredDocumentation","src":"1308:323:35","text":" @dev Initializes the contract with references to the ENS and the SCI Registry.\n @param _ensRegistry Address of the ENS Registry contract.\n @param _sciRegistry Address of the SCI Registry contract.\n @param _crossChainDomainMessagnger Address of the cross-chain domain messenger contract."},"id":7482,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7471,"name":"_sciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7466,"src":"1785:12:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7472,"name":"_crossChainDomainMessagnger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7468,"src":"1799:27:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7473,"kind":"baseConstructorSpecifier","modifierName":{"id":7470,"name":"SuperChainSourceRegistrar","nameLocations":["1759:25:35"],"nodeType":"IdentifierPath","referencedDeclaration":7720,"src":"1759:25:35"},"nodeType":"ModifierInvocation","src":"1759:68:35"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7464,"mutability":"mutable","name":"_ensRegistry","nameLocation":"1665:12:35","nodeType":"VariableDeclaration","scope":7482,"src":"1657:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7463,"name":"address","nodeType":"ElementaryTypeName","src":"1657:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7466,"mutability":"mutable","name":"_sciRegistry","nameLocation":"1695:12:35","nodeType":"VariableDeclaration","scope":7482,"src":"1687:20:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7465,"name":"address","nodeType":"ElementaryTypeName","src":"1687:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7468,"mutability":"mutable","name":"_crossChainDomainMessagnger","nameLocation":"1725:27:35","nodeType":"VariableDeclaration","scope":7482,"src":"1717:35:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7467,"name":"address","nodeType":"ElementaryTypeName","src":"1717:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1647:111:35"},"returnParameters":{"id":7474,"nodeType":"ParameterList","parameters":[],"src":"1828:0:35"},"scope":7545,"src":"1636:240:35","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7499,"nodeType":"Block","src":"2295:61:35","statements":[{"expression":{"arguments":[{"id":7495,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"2331:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7496,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"2338:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7494,"name":"_registerDomainCrossChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7691,"src":"2305:25:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2305:44:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7498,"nodeType":"ExpressionStatement","src":"2305:44:35"}]},"documentation":{"id":7483,"nodeType":"StructuredDocumentation","src":"1882:286:35","text":" @dev Registers a domain in the SCI Registry contract.\n @param owner Address of the domain owner.\n @param domainHash The namehash of the domain to be registered.\n Requirements:\n - The owner must be the ENS owner of the domainHash."},"functionSelector":"a8c00861","id":7500,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7490,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"2276:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7491,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7487,"src":"2283:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7492,"kind":"modifierInvocation","modifierName":{"id":7489,"name":"onlyEnsOwner","nameLocations":["2263:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":7461,"src":"2263:12:35"},"nodeType":"ModifierInvocation","src":"2263:31:35"}],"name":"registerDomain","nameLocation":"2182:14:35","nodeType":"FunctionDefinition","parameters":{"id":7488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7485,"mutability":"mutable","name":"owner","nameLocation":"2214:5:35","nodeType":"VariableDeclaration","scope":7500,"src":"2206:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7484,"name":"address","nodeType":"ElementaryTypeName","src":"2206:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7487,"mutability":"mutable","name":"domainHash","nameLocation":"2237:10:35","nodeType":"VariableDeclaration","scope":7500,"src":"2229:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2229:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2196:57:35"},"returnParameters":{"id":7493,"nodeType":"ParameterList","parameters":[],"src":"2295:0:35"},"scope":7545,"src":"2173:183:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7521,"nodeType":"Block","src":"2822:88:35","statements":[{"expression":{"arguments":[{"expression":{"id":7515,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2870:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2874:6:35","memberName":"sender","nodeType":"MemberAccess","src":"2870:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7517,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"2882:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7518,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"2894:8:35","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"id":7514,"name":"_registerDomainWithVerifierCrossChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7719,"src":"2832:37:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (address,bytes32,contract IVerifier)"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2832:71:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7520,"nodeType":"ExpressionStatement","src":"2832:71:35"}]},"documentation":{"id":7501,"nodeType":"StructuredDocumentation","src":"2362:311:35","text":" @dev Registers a domain with a verifier in the SCI Registry contract.\n @param domainHash The namehash of the domain to be registered.\n @param verifier Address of the verifier contract.\n Requirements:\n - The caller must be the ENS owner of the domainHash."},"functionSelector":"4c7464cf","id":7522,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":7509,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2798:3:35","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2802:6:35","memberName":"sender","nodeType":"MemberAccess","src":"2798:10:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7511,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"2810:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7512,"kind":"modifierInvocation","modifierName":{"id":7508,"name":"onlyEnsOwner","nameLocations":["2785:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":7461,"src":"2785:12:35"},"nodeType":"ModifierInvocation","src":"2785:36:35"}],"name":"registerDomainWithVerifier","nameLocation":"2687:26:35","nodeType":"FunctionDefinition","parameters":{"id":7507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7503,"mutability":"mutable","name":"domainHash","nameLocation":"2731:10:35","nodeType":"VariableDeclaration","scope":7522,"src":"2723:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2723:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7506,"mutability":"mutable","name":"verifier","nameLocation":"2761:8:35","nodeType":"VariableDeclaration","scope":7522,"src":"2751:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7505,"nodeType":"UserDefinedTypeName","pathNode":{"id":7504,"name":"IVerifier","nameLocations":["2751:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2751:9:35"},"referencedDeclaration":8474,"src":"2751:9:35","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2713:62:35"},"returnParameters":{"id":7513,"nodeType":"ParameterList","parameters":[],"src":"2822:0:35"},"scope":7545,"src":"2678:232:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7543,"nodeType":"Block","src":"3322:135:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7532,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7527,"src":"3354:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7530,"name":"ensRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"3336:11:35","typeDescriptions":{"typeIdentifier":"t_contract$_ENS_$136","typeString":"contract ENS"}},"id":7531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3348:5:35","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":105,"src":"3336:17:35","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":7533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3336:29:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7534,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7525,"src":"3369:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3336:40:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7542,"nodeType":"IfStatement","src":"3332:119:35","trueBody":{"id":7541,"nodeType":"Block","src":"3378:73:35","statements":[{"errorCall":{"arguments":[{"id":7537,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7525,"src":"3420:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7538,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7527,"src":"3429:10:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7536,"name":"AccountIsNotEnsOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"3399:20:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":7539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3399:41:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":7540,"nodeType":"RevertStatement","src":"3392:48:35"}]}}]},"documentation":{"id":7523,"nodeType":"StructuredDocumentation","src":"2916:327:35","text":" @dev Private helper function to check if the specified address owns the ENS domain.\n @param account Address expected to be the domain owner.\n @param domainHash Namehash of the domain.\n Note: Reverts with `AccountIsNotEnsOwner` error if the address is not the owner of the ENS domain."},"id":7544,"implemented":true,"kind":"function","modifiers":[],"name":"_checkEnsOwner","nameLocation":"3257:14:35","nodeType":"FunctionDefinition","parameters":{"id":7528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7525,"mutability":"mutable","name":"account","nameLocation":"3280:7:35","nodeType":"VariableDeclaration","scope":7544,"src":"3272:15:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7524,"name":"address","nodeType":"ElementaryTypeName","src":"3272:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7527,"mutability":"mutable","name":"domainHash","nameLocation":"3297:10:35","nodeType":"VariableDeclaration","scope":7544,"src":"3289:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3271:37:35"},"returnParameters":{"id":7529,"nodeType":"ParameterList","parameters":[],"src":"3322:0:35"},"scope":7545,"src":"3248:209:35","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":7546,"src":"615:2844:35","usedErrors":[7447],"usedEvents":[]}],"src":"37:3423:35"},"id":35},"contracts/Registrars/SciRegistrar.sol":{"ast":{"absolutePath":"contracts/Registrars/SciRegistrar.sol","exportedSymbols":{"AccessControlDefaultAdminRules":[2436],"ISciRegistry":[8112],"IVerifier":[8474],"SciRegistrar":[7628]},"id":7629,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7547,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:36"},{"absolutePath":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","file":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","id":7549,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7629,"sourceUnit":2437,"src":"62:124:36","symbolAliases":[{"foreign":{"id":7548,"name":"AccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"70:30:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"../SciRegistry/ISciRegistry.sol","id":7551,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7629,"sourceUnit":8113,"src":"187:61:36","symbolAliases":[{"foreign":{"id":7550,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"195:12:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":7553,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7629,"sourceUnit":8475,"src":"249:53:36","symbolAliases":[{"foreign":{"id":7552,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"257:9:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7555,"name":"AccessControlDefaultAdminRules","nameLocations":["768:30:36"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"768:30:36"},"id":7556,"nodeType":"InheritanceSpecifier","src":"768:30:36"}],"canonicalName":"SciRegistrar","contractDependencies":[],"contractKind":"contract","documentation":{"id":7554,"nodeType":"StructuredDocumentation","src":"304:438:36","text":" @title SciRegistrar\n @dev This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain\n in the SCI Registry. This will be use by the SCI team to register domains until the protocol\n became widly used and we don't need to be registering domains for protocols.\n The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7628,"linearizedBaseContracts":[7628,2436,1488,3756,3768,2566,2535,1571,3417],"name":"SciRegistrar","nameLocation":"752:12:36","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"2a3fea62","id":7561,"mutability":"constant","name":"REGISTER_DOMAIN_ROLE","nameLocation":"873:20:36","nodeType":"VariableDeclaration","scope":7628,"src":"849:80:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"849:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"52454749535445525f444f4d41494e5f524f4c45","id":7559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"906:22:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","typeString":"literal_string \"REGISTER_DOMAIN_ROLE\""},"value":"REGISTER_DOMAIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","typeString":"literal_string \"REGISTER_DOMAIN_ROLE\""}],"id":7558,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"896:9:36","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:33:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"7b103999","id":7564,"mutability":"immutable","name":"registry","nameLocation":"966:8:36","nodeType":"VariableDeclaration","scope":7628,"src":"936:38:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"},"typeName":{"id":7563,"nodeType":"UserDefinedTypeName","pathNode":{"id":7562,"name":"ISciRegistry","nameLocations":["936:12:36"],"nodeType":"IdentifierPath","referencedDeclaration":8112,"src":"936:12:36"},"referencedDeclaration":8112,"src":"936:12:36","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"visibility":"public"},{"body":{"id":7584,"nodeType":"Block","src":"1590:54:36","statements":[{"expression":{"id":7582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7578,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7564,"src":"1600:8:36","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7580,"name":"_sciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7567,"src":"1624:12:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7579,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"1611:12:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:26:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"src":"1600:37:36","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7583,"nodeType":"ExpressionStatement","src":"1600:37:36"}]},"documentation":{"id":7565,"nodeType":"StructuredDocumentation","src":"981:422:36","text":" @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n @param _sciRegistry Address of the custom domain registry contract.\n @param initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information."},"id":7585,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7574,"name":"initialDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7569,"src":"1554:12:36","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":7575,"name":"_initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7571,"src":"1568:20:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7576,"kind":"baseConstructorSpecifier","modifierName":{"id":7573,"name":"AccessControlDefaultAdminRules","nameLocations":["1523:30:36"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"1523:30:36"},"nodeType":"ModifierInvocation","src":"1523:66:36"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7567,"mutability":"mutable","name":"_sciRegistry","nameLocation":"1437:12:36","nodeType":"VariableDeclaration","scope":7585,"src":"1429:20:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7566,"name":"address","nodeType":"ElementaryTypeName","src":"1429:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7569,"mutability":"mutable","name":"initialDelay","nameLocation":"1466:12:36","nodeType":"VariableDeclaration","scope":7585,"src":"1459:19:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":7568,"name":"uint48","nodeType":"ElementaryTypeName","src":"1459:6:36","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":7571,"mutability":"mutable","name":"_initialDefaultAdmin","nameLocation":"1496:20:36","nodeType":"VariableDeclaration","scope":7585,"src":"1488:28:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7570,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1419:103:36"},"returnParameters":{"id":7577,"nodeType":"ParameterList","parameters":[],"src":"1590:0:36"},"scope":7628,"src":"1408:236:36","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7603,"nodeType":"Block","src":"2075:59:36","statements":[{"expression":{"arguments":[{"id":7599,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7588,"src":"2109:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7600,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7590,"src":"2116:10:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7596,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7564,"src":"2085:8:36","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2094:14:36","memberName":"registerDomain","nodeType":"MemberAccess","referencedDeclaration":8056,"src":"2085:23:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":7601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2085:42:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7602,"nodeType":"ExpressionStatement","src":"2085:42:36"}]},"documentation":{"id":7586,"nodeType":"StructuredDocumentation","src":"1650:299:36","text":" @dev Registers a domain in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered.\n Requirements:\n - The caller must have the REGISTER_DOMAIN_ROLE role."},"functionSelector":"a8c00861","id":7604,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7593,"name":"REGISTER_DOMAIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"2053:20:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7594,"kind":"modifierInvocation","modifierName":{"id":7592,"name":"onlyRole","nameLocations":["2044:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"2044:8:36"},"nodeType":"ModifierInvocation","src":"2044:30:36"}],"name":"registerDomain","nameLocation":"1963:14:36","nodeType":"FunctionDefinition","parameters":{"id":7591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7588,"mutability":"mutable","name":"owner","nameLocation":"1995:5:36","nodeType":"VariableDeclaration","scope":7604,"src":"1987:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7587,"name":"address","nodeType":"ElementaryTypeName","src":"1987:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7590,"mutability":"mutable","name":"domainHash","nameLocation":"2018:10:36","nodeType":"VariableDeclaration","scope":7604,"src":"2010:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2010:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1977:57:36"},"returnParameters":{"id":7595,"nodeType":"ParameterList","parameters":[],"src":"2075:0:36"},"scope":7628,"src":"1954:180:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7626,"nodeType":"Block","src":"2800:81:36","statements":[{"expression":{"arguments":[{"id":7621,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7607,"src":"2846:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7622,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7609,"src":"2853:10:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7623,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"2865:8:36","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"expression":{"id":7618,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7564,"src":"2810:8:36","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2819:26:36","memberName":"registerDomainWithVerifier","nodeType":"MemberAccess","referencedDeclaration":8067,"src":"2810:35:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (address,bytes32,contract IVerifier) external"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:64:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7625,"nodeType":"ExpressionStatement","src":"2810:64:36"}]},"documentation":{"id":7605,"nodeType":"StructuredDocumentation","src":"2140:494:36","text":" @dev Registers a domain with a verifier in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered.\n @param verifier Address of the verifier contract.\n Requirements:\n - The caller must have the REGISTER_DOMAIN_ROLE role.\n Note: This contract must only be handle by the SCI Team so we assume\n it's safe to receive the owner."},"functionSelector":"dd738e6c","id":7627,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7615,"name":"REGISTER_DOMAIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7561,"src":"2778:20:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7616,"kind":"modifierInvocation","modifierName":{"id":7614,"name":"onlyRole","nameLocations":["2769:8:36"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"2769:8:36"},"nodeType":"ModifierInvocation","src":"2769:30:36"}],"name":"registerDomainWithVerifier","nameLocation":"2648:26:36","nodeType":"FunctionDefinition","parameters":{"id":7613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7607,"mutability":"mutable","name":"owner","nameLocation":"2692:5:36","nodeType":"VariableDeclaration","scope":7627,"src":"2684:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7606,"name":"address","nodeType":"ElementaryTypeName","src":"2684:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7609,"mutability":"mutable","name":"domainHash","nameLocation":"2715:10:36","nodeType":"VariableDeclaration","scope":7627,"src":"2707:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2707:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7612,"mutability":"mutable","name":"verifier","nameLocation":"2745:8:36","nodeType":"VariableDeclaration","scope":7627,"src":"2735:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7611,"nodeType":"UserDefinedTypeName","pathNode":{"id":7610,"name":"IVerifier","nameLocations":["2735:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2735:9:36"},"referencedDeclaration":8474,"src":"2735:9:36","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2674:85:36"},"returnParameters":{"id":7617,"nodeType":"ParameterList","parameters":[],"src":"2800:0:36"},"scope":7628,"src":"2639:242:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7629,"src":"743:2140:36","usedErrors":[1498,1501,2448,2451,2456,5384],"usedEvents":[1510,1519,1528,2463,2466,2473,2476]}],"src":"37:2847:36"},"id":36},"contracts/Registrars/SuperChainSourceRegistrar.sol":{"ast":{"absolutePath":"contracts/Registrars/SuperChainSourceRegistrar.sol","exportedSymbols":{"ICrossDomainMessanger":[7228],"ISciRegistry":[8112],"IVerifier":[8474],"SuperChainSourceRegistrar":[7720]},"id":7721,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7630,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:37"},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"../SciRegistry/ISciRegistry.sol","id":7632,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7721,"sourceUnit":8113,"src":"62:61:37","symbolAliases":[{"foreign":{"id":7631,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"70:12:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":7634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7721,"sourceUnit":8475,"src":"124:53:37","symbolAliases":[{"foreign":{"id":7633,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"132:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Op/ICrossDomainMessanger.sol","file":"../Op//ICrossDomainMessanger.sol","id":7636,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7721,"sourceUnit":7229,"src":"178:71:37","symbolAliases":[{"foreign":{"id":7635,"name":"ICrossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"186:21:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"SuperChainSourceRegistrar","contractDependencies":[],"contractKind":"contract","documentation":{"id":7637,"nodeType":"StructuredDocumentation","src":"251:330:37","text":" @title SuperChainSourceRegistrar\n @dev This abstract contract is designed to be inherited by registrar contracts that register domains on a superchain.\n It provides functionality to register a domain on a different chain via the superchain cross-domain messaging.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7720,"linearizedBaseContracts":[7720],"name":"SuperChainSourceRegistrar","nameLocation":"600:25:37","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"095f025e","id":7640,"mutability":"immutable","name":"crossDomainMessanger","nameLocation":"752:20:37","nodeType":"VariableDeclaration","scope":7720,"src":"713:59:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"},"typeName":{"id":7639,"nodeType":"UserDefinedTypeName","pathNode":{"id":7638,"name":"ICrossDomainMessanger","nameLocations":["713:21:37"],"nodeType":"IdentifierPath","referencedDeclaration":7228,"src":"713:21:37"},"referencedDeclaration":7228,"src":"713:21:37","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"visibility":"public"},{"constant":false,"functionSelector":"c03799db","id":7642,"mutability":"mutable","name":"targetRegistrar","nameLocation":"866:15:37","nodeType":"VariableDeclaration","scope":7720,"src":"851:30:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7641,"name":"address","nodeType":"ElementaryTypeName","src":"851:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":true,"functionSelector":"77a50701","id":7645,"mutability":"constant","name":"REGISTER_DOMAIN_GAS_LIMIT","nameLocation":"976:25:37","nodeType":"VariableDeclaration","scope":7720,"src":"953:57:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7643,"name":"uint32","nodeType":"ElementaryTypeName","src":"953:6:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"323030303030","id":7644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:6:37","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200000"},"visibility":"public"},{"constant":true,"functionSelector":"d9e63a89","id":7648,"mutability":"constant","name":"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT","nameLocation":"1039:39:37","nodeType":"VariableDeclaration","scope":7720,"src":"1016:71:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":7646,"name":"uint32","nodeType":"ElementaryTypeName","src":"1016:6:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"333030303030","id":7647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1081:6:37","typeDescriptions":{"typeIdentifier":"t_rational_300000_by_1","typeString":"int_const 300000"},"value":"300000"},"visibility":"public"},{"body":{"id":7666,"nodeType":"Block","src":"1461:128:37","statements":[{"expression":{"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7656,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7640,"src":"1471:20:37","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7658,"name":"_crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7653,"src":"1516:21:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7657,"name":"ICrossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"1494:21:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossDomainMessanger_$7228_$","typeString":"type(contract ICrossDomainMessanger)"}},"id":7659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1494:44:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"src":"1471:67:37","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"id":7661,"nodeType":"ExpressionStatement","src":"1471:67:37"},{"expression":{"id":7664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7662,"name":"targetRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7642,"src":"1548:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7663,"name":"_targetRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7651,"src":"1566:16:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1548:34:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7665,"nodeType":"ExpressionStatement","src":"1548:34:37"}]},"documentation":{"id":7649,"nodeType":"StructuredDocumentation","src":"1094:293:37","text":" @dev Initializes the contract by setting up the Cross domain messenger and the target registrar.\n @param _targetRegistrar The address of the registrar contract on the target chain.\n @param _crossDomainMessanger The address of the cross-domain messenger contract."},"id":7667,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7651,"mutability":"mutable","name":"_targetRegistrar","nameLocation":"1412:16:37","nodeType":"VariableDeclaration","scope":7667,"src":"1404:24:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7650,"name":"address","nodeType":"ElementaryTypeName","src":"1404:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7653,"mutability":"mutable","name":"_crossDomainMessanger","nameLocation":"1438:21:37","nodeType":"VariableDeclaration","scope":7667,"src":"1430:29:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7652,"name":"address","nodeType":"ElementaryTypeName","src":"1430:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1403:57:37"},"returnParameters":{"id":7655,"nodeType":"ParameterList","parameters":[],"src":"1461:0:37"},"scope":7720,"src":"1392:197:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7690,"nodeType":"Block","src":"1913:205:37","statements":[{"expression":{"arguments":[{"id":7678,"name":"targetRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7642,"src":"1969:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":7681,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"2013:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2026:14:37","memberName":"registerDomain","nodeType":"MemberAccess","referencedDeclaration":8056,"src":"2013:27:37","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function ISciRegistry.registerDomain(address,bytes32)"}},{"components":[{"id":7683,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7670,"src":"2043:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7684,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7672,"src":"2050:10:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2042:19:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes32_$","typeString":"tuple(address,bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function ISciRegistry.registerDomain(address,bytes32)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes32_$","typeString":"tuple(address,bytes32)"}],"expression":{"id":7679,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1998:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2002:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"1998:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:64:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7687,"name":"REGISTER_DOMAIN_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2076:25:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":7675,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7640,"src":"1923:20:37","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1944:11:37","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":7221,"src":"1923:32:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) external"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1923:188:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7689,"nodeType":"ExpressionStatement","src":"1923:188:37"}]},"documentation":{"id":7668,"nodeType":"StructuredDocumentation","src":"1595:234:37","text":" @dev Registers a domain on the target registrar contract via cross-domain messaging.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered."},"id":7691,"implemented":true,"kind":"function","modifiers":[],"name":"_registerDomainCrossChain","nameLocation":"1843:25:37","nodeType":"FunctionDefinition","parameters":{"id":7673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7670,"mutability":"mutable","name":"owner","nameLocation":"1877:5:37","nodeType":"VariableDeclaration","scope":7691,"src":"1869:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7669,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7672,"mutability":"mutable","name":"domainHash","nameLocation":"1892:10:37","nodeType":"VariableDeclaration","scope":7691,"src":"1884:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1884:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1868:35:37"},"returnParameters":{"id":7674,"nodeType":"ParameterList","parameters":[],"src":"1913:0:37"},"scope":7720,"src":"1834:284:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7718,"nodeType":"Block","src":"2581:241:37","statements":[{"expression":{"arguments":[{"id":7705,"name":"targetRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7642,"src":"2637:15:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":7708,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"2681:12:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2694:26:37","memberName":"registerDomainWithVerifier","nodeType":"MemberAccess","referencedDeclaration":8067,"src":"2681:39:37","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function ISciRegistry.registerDomainWithVerifier(address,bytes32,contract IVerifier)"}},{"components":[{"id":7710,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7694,"src":"2723:5:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7711,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7696,"src":"2730:10:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7712,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7699,"src":"2742:8:37","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"id":7713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2722:29:37","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$","typeString":"tuple(address,bytes32,contract IVerifier)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function ISciRegistry.registerDomainWithVerifier(address,bytes32,contract IVerifier)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$","typeString":"tuple(address,bytes32,contract IVerifier)"}],"expression":{"id":7706,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2666:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2670:10:37","memberName":"encodeCall","nodeType":"MemberAccess","src":"2666:14:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:86:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7715,"name":"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7648,"src":"2766:39:37","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":7702,"name":"crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7640,"src":"2591:20:37","typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessanger_$7228","typeString":"contract ICrossDomainMessanger"}},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2612:11:37","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":7221,"src":"2591:32:37","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) external"}},"id":7716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2591:224:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7717,"nodeType":"ExpressionStatement","src":"2591:224:37"}]},"documentation":{"id":7692,"nodeType":"StructuredDocumentation","src":"2124:311:37","text":" @dev Registers a domain with a verifier on the target registrar contract via cross-domain messaging.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered.\n @param verifier The address of the verifier contract."},"id":7719,"implemented":true,"kind":"function","modifiers":[],"name":"_registerDomainWithVerifierCrossChain","nameLocation":"2449:37:37","nodeType":"FunctionDefinition","parameters":{"id":7700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7694,"mutability":"mutable","name":"owner","nameLocation":"2504:5:37","nodeType":"VariableDeclaration","scope":7719,"src":"2496:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7693,"name":"address","nodeType":"ElementaryTypeName","src":"2496:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7696,"mutability":"mutable","name":"domainHash","nameLocation":"2527:10:37","nodeType":"VariableDeclaration","scope":7719,"src":"2519:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2519:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7699,"mutability":"mutable","name":"verifier","nameLocation":"2557:8:37","nodeType":"VariableDeclaration","scope":7719,"src":"2547:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7698,"nodeType":"UserDefinedTypeName","pathNode":{"id":7697,"name":"IVerifier","nameLocations":["2547:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2547:9:37"},"referencedDeclaration":8474,"src":"2547:9:37","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2486:85:37"},"returnParameters":{"id":7701,"nodeType":"ParameterList","parameters":[],"src":"2581:0:37"},"scope":7720,"src":"2440:382:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":7721,"src":"582:2242:37","usedErrors":[],"usedEvents":[]}],"src":"37:2788:37"},"id":37},"contracts/Registrars/SuperChainTargetRegistrar.sol":{"ast":{"absolutePath":"contracts/Registrars/SuperChainTargetRegistrar.sol","exportedSymbols":{"ISciRegistry":[8112],"IVerifier":[8474],"SuperChainAccessControlDefaultAdminRules":[7306],"SuperChainTargetRegistrar":[7806]},"id":7807,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7722,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:38"},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"../SciRegistry/ISciRegistry.sol","id":7724,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7807,"sourceUnit":8113,"src":"62:61:38","symbolAliases":[{"foreign":{"id":7723,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"70:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":7726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7807,"sourceUnit":8475,"src":"124:53:38","symbolAliases":[{"foreign":{"id":7725,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"132:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol","file":"../Op/SuperChainAccessControlDefaultAdminRules.sol","id":7728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7807,"sourceUnit":7307,"src":"178:108:38","symbolAliases":[{"foreign":{"id":7727,"name":"SuperChainAccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7306,"src":"186:40:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7730,"name":"SuperChainAccessControlDefaultAdminRules","nameLocations":["653:40:38"],"nodeType":"IdentifierPath","referencedDeclaration":7306,"src":"653:40:38"},"id":7731,"nodeType":"InheritanceSpecifier","src":"653:40:38"}],"canonicalName":"SuperChainTargetRegistrar","contractDependencies":[],"contractKind":"contract","documentation":{"id":7729,"nodeType":"StructuredDocumentation","src":"288:326:38","text":" @title SuperChainTargetRegistrar\n @dev This contract allows addresses from the source chain with REGISTER_DOMAIN_ROLE role to register a domain.\n It uses the superchain cross-domain messaging to \"listen\" for domain registration requests from the source chain.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7806,"linearizedBaseContracts":[7806,7306,2436,1488,3756,3768,2566,2535,1571,3417],"name":"SuperChainTargetRegistrar","nameLocation":"624:25:38","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"2a3fea62","id":7736,"mutability":"constant","name":"REGISTER_DOMAIN_ROLE","nameLocation":"768:20:38","nodeType":"VariableDeclaration","scope":7806,"src":"744:80:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"744:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"52454749535445525f444f4d41494e5f524f4c45","id":7734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"801:22:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","typeString":"literal_string \"REGISTER_DOMAIN_ROLE\""},"value":"REGISTER_DOMAIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c68","typeString":"literal_string \"REGISTER_DOMAIN_ROLE\""}],"id":7733,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"791:9:38","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"791:33:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"7b103999","id":7739,"mutability":"immutable","name":"registry","nameLocation":"861:8:38","nodeType":"VariableDeclaration","scope":7806,"src":"831:38:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"},"typeName":{"id":7738,"nodeType":"UserDefinedTypeName","pathNode":{"id":7737,"name":"ISciRegistry","nameLocations":["831:12:38"],"nodeType":"IdentifierPath","referencedDeclaration":8112,"src":"831:12:38"},"referencedDeclaration":8112,"src":"831:12:38","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"visibility":"public"},{"body":{"id":7762,"nodeType":"Block","src":"1702:54:38","statements":[{"expression":{"id":7760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7756,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"1712:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7758,"name":"_sciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7742,"src":"1736:12:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7757,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"1723:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1723:26:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"src":"1712:37:38","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7761,"nodeType":"ExpressionStatement","src":"1712:37:38"}]},"documentation":{"id":7740,"nodeType":"StructuredDocumentation","src":"876:507:38","text":" @dev Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\n @param _sciRegistry Address of the custom domain registry contract.\n @param _crossDomainMessanger Address of the cross-domain messenger contract.\n @param _initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information."},"id":7763,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":7751,"name":"_crossDomainMessanger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7744,"src":"1605:21:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7752,"name":"_initialDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7746,"src":"1640:13:38","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":7753,"name":"_initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"1667:20:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":7754,"kind":"baseConstructorSpecifier","modifierName":{"id":7750,"name":"SuperChainAccessControlDefaultAdminRules","nameLocations":["1551:40:38"],"nodeType":"IdentifierPath","referencedDeclaration":7306,"src":"1551:40:38"},"nodeType":"ModifierInvocation","src":"1551:146:38"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7742,"mutability":"mutable","name":"_sciRegistry","nameLocation":"1417:12:38","nodeType":"VariableDeclaration","scope":7763,"src":"1409:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7741,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7744,"mutability":"mutable","name":"_crossDomainMessanger","nameLocation":"1447:21:38","nodeType":"VariableDeclaration","scope":7763,"src":"1439:29:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7743,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7746,"mutability":"mutable","name":"_initialDelay","nameLocation":"1485:13:38","nodeType":"VariableDeclaration","scope":7763,"src":"1478:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":7745,"name":"uint48","nodeType":"ElementaryTypeName","src":"1478:6:38","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":7748,"mutability":"mutable","name":"_initialDefaultAdmin","nameLocation":"1516:20:38","nodeType":"VariableDeclaration","scope":7763,"src":"1508:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7747,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1399:143:38"},"returnParameters":{"id":7755,"nodeType":"ParameterList","parameters":[],"src":"1702:0:38"},"scope":7806,"src":"1388:368:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":7781,"nodeType":"Block","src":"2277:59:38","statements":[{"expression":{"arguments":[{"id":7777,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7766,"src":"2311:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7778,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7768,"src":"2318:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7774,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"2287:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2296:14:38","memberName":"registerDomain","nodeType":"MemberAccess","referencedDeclaration":8056,"src":"2287:23:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32) external"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2287:42:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7780,"nodeType":"ExpressionStatement","src":"2287:42:38"}]},"documentation":{"id":7764,"nodeType":"StructuredDocumentation","src":"1762:379:38","text":" @dev Registers a domain in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered.\n Requirements:\n - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role.\n - The caller must be the superchain cross domain messanger"},"functionSelector":"a8c00861","id":7782,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7771,"name":"REGISTER_DOMAIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"2255:20:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7772,"kind":"modifierInvocation","modifierName":{"id":7770,"name":"onlyCrossChainRole","nameLocations":["2236:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":7284,"src":"2236:18:38"},"nodeType":"ModifierInvocation","src":"2236:40:38"}],"name":"registerDomain","nameLocation":"2155:14:38","nodeType":"FunctionDefinition","parameters":{"id":7769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7766,"mutability":"mutable","name":"owner","nameLocation":"2187:5:38","nodeType":"VariableDeclaration","scope":7782,"src":"2179:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7765,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7768,"mutability":"mutable","name":"domainHash","nameLocation":"2210:10:38","nodeType":"VariableDeclaration","scope":7782,"src":"2202:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2202:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2169:57:38"},"returnParameters":{"id":7773,"nodeType":"ParameterList","parameters":[],"src":"2277:0:38"},"scope":7806,"src":"2146:190:38","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7804,"nodeType":"Block","src":"2970:81:38","statements":[{"expression":{"arguments":[{"id":7799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7785,"src":"3016:5:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7800,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7787,"src":"3023:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7801,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7790,"src":"3035:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"expression":{"id":7796,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7739,"src":"2980:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:26:38","memberName":"registerDomainWithVerifier","nodeType":"MemberAccess","referencedDeclaration":8067,"src":"2980:35:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (address,bytes32,contract IVerifier) external"}},"id":7802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:64:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7803,"nodeType":"ExpressionStatement","src":"2980:64:38"}]},"documentation":{"id":7783,"nodeType":"StructuredDocumentation","src":"2342:452:38","text":" @dev Registers a domain with a verifier in the SCI Registry contract.\n @param owner Address expected to be the domain owner.\n @param domainHash The namehash of the domain to be registered.\n @param verifier Address of the verifier contract.\n Requirements:\n - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role.\n - The caller must be the superchain cross domain messanger"},"functionSelector":"dd738e6c","id":7805,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":7793,"name":"REGISTER_DOMAIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"2948:20:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7794,"kind":"modifierInvocation","modifierName":{"id":7792,"name":"onlyCrossChainRole","nameLocations":["2929:18:38"],"nodeType":"IdentifierPath","referencedDeclaration":7284,"src":"2929:18:38"},"nodeType":"ModifierInvocation","src":"2929:40:38"}],"name":"registerDomainWithVerifier","nameLocation":"2808:26:38","nodeType":"FunctionDefinition","parameters":{"id":7791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7785,"mutability":"mutable","name":"owner","nameLocation":"2852:5:38","nodeType":"VariableDeclaration","scope":7805,"src":"2844:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7784,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7787,"mutability":"mutable","name":"domainHash","nameLocation":"2875:10:38","nodeType":"VariableDeclaration","scope":7805,"src":"2867:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2867:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7790,"mutability":"mutable","name":"verifier","nameLocation":"2905:8:38","nodeType":"VariableDeclaration","scope":7805,"src":"2895:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7789,"nodeType":"UserDefinedTypeName","pathNode":{"id":7788,"name":"IVerifier","nameLocations":["2895:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2895:9:38"},"referencedDeclaration":8474,"src":"2895:9:38","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2834:85:38"},"returnParameters":{"id":7795,"nodeType":"ParameterList","parameters":[],"src":"2970:0:38"},"scope":7806,"src":"2799:252:38","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7807,"src":"615:2438:38","usedErrors":[1498,1501,2448,2451,2456,5384,7245],"usedEvents":[1510,1519,1528,2463,2466,2473,2476]}],"src":"37:3017:38"},"id":38},"contracts/SCI.sol":{"ast":{"absolutePath":"contracts/SCI.sol","exportedSymbols":{"ISciRegistry":[8112],"IVerifier":[8474],"Initializable":[1146],"Ownable2StepUpgradeable":[697],"SCI":[7995]},"id":7996,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7808,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:39"},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"./Verifiers/IVerifier.sol","id":7810,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7996,"sourceUnit":8475,"src":"62:52:39","symbolAliases":[{"foreign":{"id":7809,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"70:9:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"./SciRegistry/ISciRegistry.sol","id":7812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7996,"sourceUnit":8113,"src":"115:60:39","symbolAliases":[{"foreign":{"id":7811,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"123:12:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","id":7814,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7996,"sourceUnit":1147,"src":"176:96:39","symbolAliases":[{"foreign":{"id":7813,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"184:13:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol","id":7816,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7996,"sourceUnit":698,"src":"273:111:39","symbolAliases":[{"foreign":{"id":7815,"name":"Ownable2StepUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"281:23:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7818,"name":"Initializable","nameLocations":["724:13:39"],"nodeType":"IdentifierPath","referencedDeclaration":1146,"src":"724:13:39"},"id":7819,"nodeType":"InheritanceSpecifier","src":"724:13:39"},{"baseName":{"id":7820,"name":"Ownable2StepUpgradeable","nameLocations":["739:23:39"],"nodeType":"IdentifierPath","referencedDeclaration":697,"src":"739:23:39"},"id":7821,"nodeType":"InheritanceSpecifier","src":"739:23:39"}],"canonicalName":"SCI","contractDependencies":[],"contractKind":"contract","documentation":{"id":7817,"nodeType":"StructuredDocumentation","src":"386:321:39","text":" @title SCI\n @dev This contract facilitates interaction with the SCI protocol, offering a simplified interface\n for apps and wallets. Apps and wallets can also directly interact with the\n Registry and verifiers directly if desired, bypassing this contract.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":7995,"linearizedBaseContracts":[7995,697,892,1192,1146],"name":"SCI","nameLocation":"717:3:39","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":7824,"mutability":"mutable","name":"registry","nameLocation":"789:8:39","nodeType":"VariableDeclaration","scope":7995,"src":"769:28:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"},"typeName":{"id":7823,"nodeType":"UserDefinedTypeName","pathNode":{"id":7822,"name":"ISciRegistry","nameLocations":["769:12:39"],"nodeType":"IdentifierPath","referencedDeclaration":8112,"src":"769:12:39"},"referencedDeclaration":8112,"src":"769:12:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"visibility":"public"},{"anonymous":false,"documentation":{"id":7825,"nodeType":"StructuredDocumentation","src":"804:62:39","text":"  @dev Emitted when the Registry is changed."},"eventSelector":"363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f5","id":7831,"name":"RegistrySet","nameLocation":"877:11:39","nodeType":"EventDefinition","parameters":{"id":7830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7827,"indexed":true,"mutability":"mutable","name":"oldRegistryAddress","nameLocation":"905:18:39","nodeType":"VariableDeclaration","scope":7831,"src":"889:34:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7826,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7829,"indexed":true,"mutability":"mutable","name":"newRegistryAddress","nameLocation":"941:18:39","nodeType":"VariableDeclaration","scope":7831,"src":"925:34:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7828,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:72:39"},"src":"871:90:39"},{"body":{"id":7846,"nodeType":"Block","src":"1231:69:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7839,"name":"__Ownable2Step_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":598,"src":"1241:19:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1241:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7841,"nodeType":"ExpressionStatement","src":"1241:21:39"},{"expression":{"arguments":[{"id":7843,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7834,"src":"1287:5:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7842,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":752,"src":"1272:14:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1272:21:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7845,"nodeType":"ExpressionStatement","src":"1272:21:39"}]},"documentation":{"id":7832,"nodeType":"StructuredDocumentation","src":"967:203:39","text":" @dev Initializes the SCI contract with the owner and registry address.\n Can only be called once during contract deployment.\n @param owner The owner of this contract."},"functionSelector":"c4d66de8","id":7847,"implemented":true,"kind":"function","modifiers":[{"id":7837,"kind":"modifierInvocation","modifierName":{"id":7836,"name":"initializer","nameLocations":["1219:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":1000,"src":"1219:11:39"},"nodeType":"ModifierInvocation","src":"1219:11:39"}],"name":"initialize","nameLocation":"1184:10:39","nodeType":"FunctionDefinition","parameters":{"id":7835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7834,"mutability":"mutable","name":"owner","nameLocation":"1203:5:39","nodeType":"VariableDeclaration","scope":7847,"src":"1195:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7833,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:15:39"},"returnParameters":{"id":7838,"nodeType":"ParameterList","parameters":[],"src":"1231:0:39"},"scope":7995,"src":"1175:125:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":7867,"nodeType":"Block","src":"1685:63:39","statements":[{"expression":{"arguments":[{"id":7864,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7850,"src":"1730:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7862,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"1702:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1711:18:39","memberName":"domainHashToRecord","nodeType":"MemberAccess","referencedDeclaration":8048,"src":"1702:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8474_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1702:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_contract$_IVerifier_$8474_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,contract IVerifier,uint256,uint256)"}},"functionReturnParameters":7861,"id":7866,"nodeType":"Return","src":"1695:46:39"}]},"documentation":{"id":7848,"nodeType":"StructuredDocumentation","src":"1306:113:39","text":" @dev Returns info from the domain.\n @param domainHash The namehash of the domain."},"functionSelector":"5b377fa2","id":7868,"implemented":true,"kind":"function","modifiers":[],"name":"domainHashToRecord","nameLocation":"1433:18:39","nodeType":"FunctionDefinition","parameters":{"id":7851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7850,"mutability":"mutable","name":"domainHash","nameLocation":"1469:10:39","nodeType":"VariableDeclaration","scope":7868,"src":"1461:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1461:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1451:34:39"},"returnParameters":{"id":7861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7853,"mutability":"mutable","name":"owner","nameLocation":"1554:5:39","nodeType":"VariableDeclaration","scope":7868,"src":"1546:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7852,"name":"address","nodeType":"ElementaryTypeName","src":"1546:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7856,"mutability":"mutable","name":"verifier","nameLocation":"1583:8:39","nodeType":"VariableDeclaration","scope":7868,"src":"1573:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7855,"nodeType":"UserDefinedTypeName","pathNode":{"id":7854,"name":"IVerifier","nameLocations":["1573:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"1573:9:39"},"referencedDeclaration":8474,"src":"1573:9:39","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"},{"constant":false,"id":7858,"mutability":"mutable","name":"lastOwnerSetTime","nameLocation":"1613:16:39","nodeType":"VariableDeclaration","scope":7868,"src":"1605:24:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7857,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7860,"mutability":"mutable","name":"lastVerifierSetTime","nameLocation":"1651:19:39","nodeType":"VariableDeclaration","scope":7868,"src":"1643:27:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7859,"name":"uint256","nodeType":"ElementaryTypeName","src":"1643:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1532:148:39"},"scope":7995,"src":"1424:324:39","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7925,"nodeType":"Block","src":"2459:472:39","statements":[{"assignments":[7886],"declarations":[{"constant":false,"id":7886,"mutability":"mutable","name":"domainsVerification","nameLocation":"2486:19:39","nodeType":"VariableDeclaration","scope":7925,"src":"2469:36:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7884,"name":"uint256","nodeType":"ElementaryTypeName","src":"2469:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7885,"nodeType":"ArrayTypeName","src":"2469:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":7893,"initialValue":{"arguments":[{"expression":{"id":7890,"name":"domainHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"2522:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2535:6:39","memberName":"length","nodeType":"MemberAccess","src":"2522:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2508:13:39","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":7887,"name":"uint256","nodeType":"ElementaryTypeName","src":"2512:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7888,"nodeType":"ArrayTypeName","src":"2512:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":7892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:34:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2469:73:39"},{"assignments":[7895],"declarations":[{"constant":false,"id":7895,"mutability":"mutable","name":"domainHashesLength","nameLocation":"2560:18:39","nodeType":"VariableDeclaration","scope":7925,"src":"2552:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7894,"name":"uint256","nodeType":"ElementaryTypeName","src":"2552:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7898,"initialValue":{"expression":{"id":7896,"name":"domainHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"2581:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2594:6:39","memberName":"length","nodeType":"MemberAccess","src":"2581:19:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2552:48:39"},{"body":{"id":7921,"nodeType":"Block","src":"2652:237:39","statements":[{"expression":{"id":7915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":7905,"name":"domainsVerification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"2666:19:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":7907,"indexExpression":{"id":7906,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7900,"src":"2686:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2666:22:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":7909,"name":"domainHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"2732:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7911,"indexExpression":{"id":7910,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7900,"src":"2745:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2732:15:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7912,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"2765:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7913,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"2798:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7908,"name":"isVerifiedForDomainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7967,"src":"2691:23:39","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2691:128:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2666:153:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7916,"nodeType":"ExpressionStatement","src":"2666:153:39"},{"id":7920,"nodeType":"UncheckedBlock","src":"2833:46:39","statements":[{"expression":{"id":7918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2861:3:39","subExpression":{"id":7917,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7900,"src":"2863:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7919,"nodeType":"ExpressionStatement","src":"2861:3:39"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7902,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7900,"src":"2626:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7903,"name":"domainHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"2630:18:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2626:22:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7922,"initializationExpression":{"assignments":[7900],"declarations":[{"constant":false,"id":7900,"mutability":"mutable","name":"i","nameLocation":"2623:1:39","nodeType":"VariableDeclaration","scope":7922,"src":"2615:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7899,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7901,"nodeType":"VariableDeclarationStatement","src":"2615:9:39"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"2610:279:39"},{"expression":{"id":7923,"name":"domainsVerification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"2905:19:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":7881,"id":7924,"nodeType":"Return","src":"2898:26:39"}]},"documentation":{"id":7869,"nodeType":"StructuredDocumentation","src":"1754:513:39","text":" @dev Same as isVerifiedForDomainHash but for multiple domains.\n @param domainHashes An array of domain hashes.\n @param contractAddress The address of the contract is being verified.\n @param chainId The id of the chain the contract is deployed in.\n @return an array of uint256 representing the time when the contract was verified for each domain\n or 0 if it wasn't.\n Note: If there is no verifier set then it returns false for that `domainHash`."},"functionSelector":"929d1ac1","id":7926,"implemented":true,"kind":"function","modifiers":[],"name":"isVerifiedForMultipleDomainHashes","nameLocation":"2281:33:39","nodeType":"FunctionDefinition","parameters":{"id":7877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7872,"mutability":"mutable","name":"domainHashes","nameLocation":"2341:12:39","nodeType":"VariableDeclaration","scope":7926,"src":"2324:29:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7871,"nodeType":"ArrayTypeName","src":"2324:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7874,"mutability":"mutable","name":"contractAddress","nameLocation":"2371:15:39","nodeType":"VariableDeclaration","scope":7926,"src":"2363:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7873,"name":"address","nodeType":"ElementaryTypeName","src":"2363:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7876,"mutability":"mutable","name":"chainId","nameLocation":"2404:7:39","nodeType":"VariableDeclaration","scope":7926,"src":"2396:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2396:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2314:103:39"},"returnParameters":{"id":7881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7926,"src":"2441:16:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7878,"name":"uint256","nodeType":"ElementaryTypeName","src":"2441:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7879,"nodeType":"ArrayTypeName","src":"2441:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2440:18:39"},"scope":7995,"src":"2272:659:39","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":7966,"nodeType":"Block","src":"3702:240:39","statements":[{"assignments":[null,7940,null,null],"declarations":[null,{"constant":false,"id":7940,"mutability":"mutable","name":"verifier","nameLocation":"3725:8:39","nodeType":"VariableDeclaration","scope":7966,"src":"3715:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":7939,"nodeType":"UserDefinedTypeName","pathNode":{"id":7938,"name":"IVerifier","nameLocations":["3715:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"3715:9:39"},"referencedDeclaration":8474,"src":"3715:9:39","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"},null,null],"id":7945,"initialValue":{"arguments":[{"id":7943,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7929,"src":"3769:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7941,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"3741:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3750:18:39","memberName":"domainHashToRecord","nodeType":"MemberAccess","referencedDeclaration":8048,"src":"3741:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$_t_contract$_IVerifier_$8474_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) view external returns (address,contract IVerifier,uint256,uint256)"}},"id":7944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3741:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_contract$_IVerifier_$8474_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,contract IVerifier,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3712:68:39"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7948,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7940,"src":"3803:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"id":7947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7946,"name":"address","nodeType":"ElementaryTypeName","src":"3795:7:39","typeDescriptions":{}}},"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:1:39","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":7951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3816:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7950,"name":"address","nodeType":"ElementaryTypeName","src":"3816:7:39","typeDescriptions":{}}},"id":7953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3816:10:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3795:31:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7958,"nodeType":"IfStatement","src":"3791:70:39","trueBody":{"id":7957,"nodeType":"Block","src":"3828:33:39","statements":[{"expression":{"hexValue":"30","id":7955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3849:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":7937,"id":7956,"nodeType":"Return","src":"3842:8:39"}]}},{"expression":{"arguments":[{"id":7961,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7929,"src":"3898:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7962,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7931,"src":"3910:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7963,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7933,"src":"3927:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7959,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7940,"src":"3878:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"id":7960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3887:10:39","memberName":"isVerified","nodeType":"MemberAccess","referencedDeclaration":8473,"src":"3878:19:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view external returns (uint256)"}},"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3878:57:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7937,"id":7965,"nodeType":"Return","src":"3871:64:39"}]},"documentation":{"id":7927,"nodeType":"StructuredDocumentation","src":"2937:605:39","text":" @dev Returns if the `contractAddress` deployed in the chain with id `chainId` is verified.\n to interact with the domain with namehash `domainHash`.\n @param domainHash The namehash of the domain the contract is interacting with\n @param contractAddress The address of the contract is being verified.\n @param chainId The id of the chain the contract is deployed in.\n @return a uint256 representing the time when the contract was verified.\n If the contract is not verified, it returns 0.\n Note: If there is no verifier set then it returns 0."},"functionSelector":"2019241b","id":7967,"implemented":true,"kind":"function","modifiers":[],"name":"isVerifiedForDomainHash","nameLocation":"3556:23:39","nodeType":"FunctionDefinition","parameters":{"id":7934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7929,"mutability":"mutable","name":"domainHash","nameLocation":"3597:10:39","nodeType":"VariableDeclaration","scope":7967,"src":"3589:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3589:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7931,"mutability":"mutable","name":"contractAddress","nameLocation":"3625:15:39","nodeType":"VariableDeclaration","scope":7967,"src":"3617:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7930,"name":"address","nodeType":"ElementaryTypeName","src":"3617:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7933,"mutability":"mutable","name":"chainId","nameLocation":"3658:7:39","nodeType":"VariableDeclaration","scope":7967,"src":"3650:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7932,"name":"uint256","nodeType":"ElementaryTypeName","src":"3650:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3579:92:39"},"returnParameters":{"id":7937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7967,"src":"3693:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7935,"name":"uint256","nodeType":"ElementaryTypeName","src":"3693:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3692:9:39"},"scope":7995,"src":"3547:395:39","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":7993,"nodeType":"Block","src":"4172:168:39","statements":[{"assignments":[7976],"declarations":[{"constant":false,"id":7976,"mutability":"mutable","name":"oldRegistryAddress","nameLocation":"4190:18:39","nodeType":"VariableDeclaration","scope":7993,"src":"4182:26:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7975,"name":"address","nodeType":"ElementaryTypeName","src":"4182:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7981,"initialValue":{"arguments":[{"id":7979,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"4219:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}],"id":7978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4211:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7977,"name":"address","nodeType":"ElementaryTypeName","src":"4211:7:39","typeDescriptions":{}}},"id":7980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4211:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4182:46:39"},{"expression":{"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7982,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"4238:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7984,"name":"newRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"4262:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7983,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"4249:12:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISciRegistry_$8112_$","typeString":"type(contract ISciRegistry)"}},"id":7985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4249:25:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"src":"4238:36:39","typeDescriptions":{"typeIdentifier":"t_contract$_ISciRegistry_$8112","typeString":"contract ISciRegistry"}},"id":7987,"nodeType":"ExpressionStatement","src":"4238:36:39"},{"eventCall":{"arguments":[{"id":7989,"name":"oldRegistryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7976,"src":"4301:18:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7990,"name":"newRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7970,"src":"4321:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7988,"name":"RegistrySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7831,"src":"4289:11:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4289:44:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7992,"nodeType":"EmitStatement","src":"4284:49:39"}]},"documentation":{"id":7968,"nodeType":"StructuredDocumentation","src":"3948:160:39","text":" @dev Sets a new registry.\n @param newRegistry The address of the new SCI Registry.\n May emit a {RegistrySet} event."},"functionSelector":"a91ee0dc","id":7994,"implemented":true,"kind":"function","modifiers":[{"id":7973,"kind":"modifierInvocation","modifierName":{"id":7972,"name":"onlyOwner","nameLocations":["4162:9:39"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"4162:9:39"},"nodeType":"ModifierInvocation","src":"4162:9:39"}],"name":"setRegistry","nameLocation":"4122:11:39","nodeType":"FunctionDefinition","parameters":{"id":7971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7970,"mutability":"mutable","name":"newRegistry","nameLocation":"4142:11:39","nodeType":"VariableDeclaration","scope":7994,"src":"4134:19:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7969,"name":"address","nodeType":"ElementaryTypeName","src":"4134:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4133:21:39"},"returnParameters":{"id":7974,"nodeType":"ParameterList","parameters":[],"src":"4172:0:39"},"scope":7995,"src":"4113:227:39","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":7996,"src":"708:3634:39","usedErrors":[728,733,909,912],"usedEvents":[592,739,917,7831]}],"src":"37:4306:39"},"id":39},"contracts/SciRegistry/ISciRegistry.sol":{"ast":{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","exportedSymbols":{"ISciRegistry":[8112],"IVerifier":[8474]},"id":8113,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":7997,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:40"},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":7999,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8113,"sourceUnit":8475,"src":"62:53:40","symbolAliases":[{"foreign":{"id":7998,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"70:9:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ISciRegistry","contractDependencies":[],"contractKind":"interface","documentation":{"id":8000,"nodeType":"StructuredDocumentation","src":"117:368:40","text":" @title ISciRegistry\n @dev This contract manages domain registration and verifiers. It uses role-based access control to allow\n only authorized accounts to register domains and update verifiers.\n The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\n @custom:security-contact security@sci.domains"},"fullyImplemented":false,"id":8112,"linearizedBaseContracts":[8112],"name":"ISciRegistry","nameLocation":"496:12:40","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8001,"nodeType":"StructuredDocumentation","src":"515:110:40","text":" @dev Emitted when a new `domain` with the `domainHash` is\n registered by the `owner`."},"eventSelector":"fb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a63","id":8009,"name":"DomainRegistered","nameLocation":"636:16:40","nodeType":"EventDefinition","parameters":{"id":8008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8003,"indexed":true,"mutability":"mutable","name":"registrar","nameLocation":"678:9:40","nodeType":"VariableDeclaration","scope":8009,"src":"662:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8002,"name":"address","nodeType":"ElementaryTypeName","src":"662:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8005,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"713:5:40","nodeType":"VariableDeclaration","scope":8009,"src":"697:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8004,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8007,"indexed":true,"mutability":"mutable","name":"domainHash","nameLocation":"744:10:40","nodeType":"VariableDeclaration","scope":8009,"src":"728:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"728:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"652:108:40"},"src":"630:131:40"},{"anonymous":false,"documentation":{"id":8010,"nodeType":"StructuredDocumentation","src":"767:163:40","text":" @dev Emitted when the `owner` of the `domainHash` adds a `verifier`.\n Note: This will also be emitted when the verifier is changed."},"eventSelector":"c485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd2","id":8022,"name":"VerifierSet","nameLocation":"941:11:40","nodeType":"EventDefinition","parameters":{"id":8021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8012,"indexed":false,"mutability":"mutable","name":"msgSender","nameLocation":"970:9:40","nodeType":"VariableDeclaration","scope":8022,"src":"962:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8011,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8014,"indexed":true,"mutability":"mutable","name":"domainHash","nameLocation":"1005:10:40","nodeType":"VariableDeclaration","scope":8022,"src":"989:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"989:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8017,"indexed":true,"mutability":"mutable","name":"oldVerifier","nameLocation":"1043:11:40","nodeType":"VariableDeclaration","scope":8022,"src":"1025:29:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8016,"nodeType":"UserDefinedTypeName","pathNode":{"id":8015,"name":"IVerifier","nameLocations":["1025:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"1025:9:40"},"referencedDeclaration":8474,"src":"1025:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"},{"constant":false,"id":8020,"indexed":true,"mutability":"mutable","name":"newVerifie","nameLocation":"1082:10:40","nodeType":"VariableDeclaration","scope":8022,"src":"1064:28:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8019,"nodeType":"UserDefinedTypeName","pathNode":{"id":8018,"name":"IVerifier","nameLocations":["1064:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"1064:9:40"},"referencedDeclaration":8474,"src":"1064:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"952:146:40"},"src":"935:164:40"},{"anonymous":false,"documentation":{"id":8023,"nodeType":"StructuredDocumentation","src":"1105:79:40","text":" @dev Emitted when the owner of a `domainHash` is set."},"eventSelector":"c4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb288","id":8033,"name":"OwnerSet","nameLocation":"1195:8:40","nodeType":"EventDefinition","parameters":{"id":8032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8025,"indexed":false,"mutability":"mutable","name":"msgSender","nameLocation":"1221:9:40","nodeType":"VariableDeclaration","scope":8033,"src":"1213:17:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8024,"name":"address","nodeType":"ElementaryTypeName","src":"1213:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8027,"indexed":true,"mutability":"mutable","name":"domainHash","nameLocation":"1256:10:40","nodeType":"VariableDeclaration","scope":8033,"src":"1240:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1240:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8029,"indexed":true,"mutability":"mutable","name":"oldOwner","nameLocation":"1292:8:40","nodeType":"VariableDeclaration","scope":8033,"src":"1276:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8028,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8031,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1326:8:40","nodeType":"VariableDeclaration","scope":8033,"src":"1310:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8030,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1203:137:40"},"src":"1189:152:40"},{"documentation":{"id":8034,"nodeType":"StructuredDocumentation","src":"1347:183:40","text":" @dev Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime\n for a given domainHash.\n @param domainHash The namehash of the domain."},"functionSelector":"5b377fa2","id":8048,"implemented":false,"kind":"function","modifiers":[],"name":"domainHashToRecord","nameLocation":"1544:18:40","nodeType":"FunctionDefinition","parameters":{"id":8037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8036,"mutability":"mutable","name":"domainHash","nameLocation":"1580:10:40","nodeType":"VariableDeclaration","scope":8048,"src":"1572:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1572:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1562:34:40"},"returnParameters":{"id":8047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8039,"mutability":"mutable","name":"owner","nameLocation":"1665:5:40","nodeType":"VariableDeclaration","scope":8048,"src":"1657:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8038,"name":"address","nodeType":"ElementaryTypeName","src":"1657:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8042,"mutability":"mutable","name":"verifier","nameLocation":"1694:8:40","nodeType":"VariableDeclaration","scope":8048,"src":"1684:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8041,"nodeType":"UserDefinedTypeName","pathNode":{"id":8040,"name":"IVerifier","nameLocations":["1684:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"1684:9:40"},"referencedDeclaration":8474,"src":"1684:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"},{"constant":false,"id":8044,"mutability":"mutable","name":"lastOwnerSetTime","nameLocation":"1724:16:40","nodeType":"VariableDeclaration","scope":8048,"src":"1716:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8043,"name":"uint256","nodeType":"ElementaryTypeName","src":"1716:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8046,"mutability":"mutable","name":"lastIVerifierSetTime","nameLocation":"1762:20:40","nodeType":"VariableDeclaration","scope":8048,"src":"1754:28:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1643:149:40"},"scope":8112,"src":"1535:258:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8049,"nodeType":"StructuredDocumentation","src":"1799:317:40","text":" @dev Register a domain.\n @param owner The owner of the domain.\n @param domainHash The namehash of the domain being registered.\n Requirements:\n - Only valid Registrars must be able to call this function.\n May emit a {DomainRegistered} event."},"functionSelector":"a8c00861","id":8056,"implemented":false,"kind":"function","modifiers":[],"name":"registerDomain","nameLocation":"2130:14:40","nodeType":"FunctionDefinition","parameters":{"id":8054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8051,"mutability":"mutable","name":"owner","nameLocation":"2153:5:40","nodeType":"VariableDeclaration","scope":8056,"src":"2145:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8050,"name":"address","nodeType":"ElementaryTypeName","src":"2145:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8053,"mutability":"mutable","name":"domainHash","nameLocation":"2168:10:40","nodeType":"VariableDeclaration","scope":8056,"src":"2160:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2160:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2144:35:40"},"returnParameters":{"id":8055,"nodeType":"ParameterList","parameters":[],"src":"2188:0:40"},"scope":8112,"src":"2121:68:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8057,"nodeType":"StructuredDocumentation","src":"2195:655:40","text":" @dev Same as registerDomain but it also adds a IVerifier.\n @param owner The owner of the domain being registered.\n @param domainHash The namehash of the domain being registered.\n @param verifier The verifier that is being set for the domain.\n Requirements:\n - Only valid Registrars must be able to call this function.\n Note: Most of registrars should implement this function by sending\n the message sender as the owner to avoid other addresses changing or setting\n a malicous verifier.\n May emit a {DomainRegistered} and a {IVerifierAdded} events."},"functionSelector":"dd738e6c","id":8067,"implemented":false,"kind":"function","modifiers":[],"name":"registerDomainWithVerifier","nameLocation":"2864:26:40","nodeType":"FunctionDefinition","parameters":{"id":8065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8059,"mutability":"mutable","name":"owner","nameLocation":"2908:5:40","nodeType":"VariableDeclaration","scope":8067,"src":"2900:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8058,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8061,"mutability":"mutable","name":"domainHash","nameLocation":"2931:10:40","nodeType":"VariableDeclaration","scope":8067,"src":"2923:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2923:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8064,"mutability":"mutable","name":"verifier","nameLocation":"2961:8:40","nodeType":"VariableDeclaration","scope":8067,"src":"2951:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8063,"nodeType":"UserDefinedTypeName","pathNode":{"id":8062,"name":"IVerifier","nameLocations":["2951:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2951:9:40"},"referencedDeclaration":8474,"src":"2951:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2890:85:40"},"returnParameters":{"id":8066,"nodeType":"ParameterList","parameters":[],"src":"2984:0:40"},"scope":8112,"src":"2855:130:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8068,"nodeType":"StructuredDocumentation","src":"2991:83:40","text":" @dev Returns true if the account is the owner of the domainHash."},"functionSelector":"8023597e","id":8077,"implemented":false,"kind":"function","modifiers":[],"name":"isDomainOwner","nameLocation":"3088:13:40","nodeType":"FunctionDefinition","parameters":{"id":8073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8070,"mutability":"mutable","name":"domainHash","nameLocation":"3110:10:40","nodeType":"VariableDeclaration","scope":8077,"src":"3102:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3102:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8072,"mutability":"mutable","name":"account","nameLocation":"3130:7:40","nodeType":"VariableDeclaration","scope":8077,"src":"3122:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8071,"name":"address","nodeType":"ElementaryTypeName","src":"3122:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3101:37:40"},"returnParameters":{"id":8076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8075,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8077,"src":"3162:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8074,"name":"bool","nodeType":"ElementaryTypeName","src":"3162:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3161:6:40"},"scope":8112,"src":"3079:89:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8078,"nodeType":"StructuredDocumentation","src":"3174:206:40","text":" @dev Returns the owner of the domainHash.\n @param domainHash The namehash of the domain.\n @return The address of the owner or the ZERO_ADDRESS if the domain is not registered."},"functionSelector":"d26cdd20","id":8085,"implemented":false,"kind":"function","modifiers":[],"name":"domainOwner","nameLocation":"3394:11:40","nodeType":"FunctionDefinition","parameters":{"id":8081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8080,"mutability":"mutable","name":"domainHash","nameLocation":"3414:10:40","nodeType":"VariableDeclaration","scope":8085,"src":"3406:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3406:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3405:20:40"},"returnParameters":{"id":8084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8085,"src":"3449:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8082,"name":"address","nodeType":"ElementaryTypeName","src":"3449:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3448:9:40"},"scope":8112,"src":"3385:73:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8086,"nodeType":"StructuredDocumentation","src":"3464:239:40","text":" @dev Returns the IVerifier of the domainHash.\n @param domainHash The namehash of the domain.\n @return The address of the IVerifier or the ZERO_ADDRESS if the domain or\n the IVerifier are not registered."},"functionSelector":"5a75199a","id":8094,"implemented":false,"kind":"function","modifiers":[],"name":"domainVerifier","nameLocation":"3717:14:40","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8088,"mutability":"mutable","name":"domainHash","nameLocation":"3740:10:40","nodeType":"VariableDeclaration","scope":8094,"src":"3732:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3732:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3731:20:40"},"returnParameters":{"id":8093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8094,"src":"3775:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8091,"nodeType":"UserDefinedTypeName","pathNode":{"id":8090,"name":"IVerifier","nameLocations":["3775:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"3775:9:40"},"referencedDeclaration":8474,"src":"3775:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"3774:11:40"},"scope":8112,"src":"3708:78:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8095,"nodeType":"StructuredDocumentation","src":"3792:236:40","text":" @dev Returns the timestamp of the block where the IVerifier was set.\n @param domainHash The namehash of the domain.\n @return The timestamp of the block where the IVerifier was set or\n 0 if it wasn't."},"functionSelector":"a2a6c0eb","id":8102,"implemented":false,"kind":"function","modifiers":[],"name":"domainVerifierSetTime","nameLocation":"4042:21:40","nodeType":"FunctionDefinition","parameters":{"id":8098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8097,"mutability":"mutable","name":"domainHash","nameLocation":"4072:10:40","nodeType":"VariableDeclaration","scope":8102,"src":"4064:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4064:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4063:20:40"},"returnParameters":{"id":8101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8102,"src":"4107:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8099,"name":"uint256","nodeType":"ElementaryTypeName","src":"4107:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4106:9:40"},"scope":8112,"src":"4033:83:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8103,"nodeType":"StructuredDocumentation","src":"4122:402:40","text":" @dev Sets a IVerifier to the domain hash.\n @param domainHash The namehash of the domain.\n @param verifier The address of the IVerifier contract.\n Requirements:\n - the caller must be the owner of the domain.\n May emit a {IVerifierAdded} event.\n Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS."},"functionSelector":"a692b9ef","id":8111,"implemented":false,"kind":"function","modifiers":[],"name":"setVerifier","nameLocation":"4538:11:40","nodeType":"FunctionDefinition","parameters":{"id":8109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8105,"mutability":"mutable","name":"domainHash","nameLocation":"4558:10:40","nodeType":"VariableDeclaration","scope":8111,"src":"4550:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4550:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8108,"mutability":"mutable","name":"verifier","nameLocation":"4580:8:40","nodeType":"VariableDeclaration","scope":8111,"src":"4570:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8107,"nodeType":"UserDefinedTypeName","pathNode":{"id":8106,"name":"IVerifier","nameLocations":["4570:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"4570:9:40"},"referencedDeclaration":8474,"src":"4570:9:40","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"4549:40:40"},"returnParameters":{"id":8110,"nodeType":"ParameterList","parameters":[],"src":"4598:0:40"},"scope":8112,"src":"4529:70:40","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8113,"src":"486:4115:40","usedErrors":[],"usedEvents":[8009,8022,8033]}],"src":"37:4565:40"},"id":40},"contracts/SciRegistry/SciRegistry.sol":{"ast":{"absolutePath":"contracts/SciRegistry/SciRegistry.sol","exportedSymbols":{"AccessControlDefaultAdminRules":[2436],"DomainManager":[7204],"ISciRegistry":[8112],"IVerifier":[8474],"Pausable":[3608],"SciRegistry":[8458]},"id":8459,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":8114,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:41"},{"absolutePath":"@openzeppelin/contracts/utils/Pausable.sol","file":"@openzeppelin/contracts/utils/Pausable.sol","id":8116,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8459,"sourceUnit":3609,"src":"62:68:41","symbolAliases":[{"foreign":{"id":8115,"name":"Pausable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"70:8:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","file":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol","id":8118,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8459,"sourceUnit":2437,"src":"131:124:41","symbolAliases":[{"foreign":{"id":8117,"name":"AccessControlDefaultAdminRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"139:30:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"../Verifiers/IVerifier.sol","id":8120,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8459,"sourceUnit":8475,"src":"256:53:41","symbolAliases":[{"foreign":{"id":8119,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"264:9:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/SciRegistry/ISciRegistry.sol","file":"./ISciRegistry.sol","id":8122,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8459,"sourceUnit":8113,"src":"310:48:41","symbolAliases":[{"foreign":{"id":8121,"name":"ISciRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8112,"src":"318:12:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/DomainMangager/DomainManager.sol","file":"../DomainMangager/DomainManager.sol","id":8124,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8459,"sourceUnit":7205,"src":"359:66:41","symbolAliases":[{"foreign":{"id":8123,"name":"DomainManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"367:13:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8126,"name":"ISciRegistry","nameLocations":["555:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":8112,"src":"555:12:41"},"id":8127,"nodeType":"InheritanceSpecifier","src":"555:12:41"},{"baseName":{"id":8128,"name":"AccessControlDefaultAdminRules","nameLocations":["569:30:41"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"569:30:41"},"id":8129,"nodeType":"InheritanceSpecifier","src":"569:30:41"},{"baseName":{"id":8130,"name":"DomainManager","nameLocations":["601:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":7204,"src":"601:13:41"},"id":8131,"nodeType":"InheritanceSpecifier","src":"601:13:41"},{"baseName":{"id":8132,"name":"Pausable","nameLocations":["616:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":3608,"src":"616:8:41"},"id":8133,"nodeType":"InheritanceSpecifier","src":"616:8:41"}],"canonicalName":"SciRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":8125,"nodeType":"StructuredDocumentation","src":"427:103:41","text":" @title Registry\n @dev See {ISciRegistry}.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":8458,"linearizedBaseContracts":[8458,3608,7204,2436,1488,3756,3768,2566,2535,1571,3417,8112],"name":"SciRegistry","nameLocation":"540:11:41","nodeType":"ContractDefinition","nodes":[{"canonicalName":"SciRegistry.Record","documentation":{"id":8134,"nodeType":"StructuredDocumentation","src":"631:343:41","text":" @dev Structure to hold domain record details, including:\n - owner: Address of the domain owner.\n - verifier: Address of the verifier contract associated with the domain.\n - ownerSetTime: Timestamp of when the domain owner was last set.\n - verifierSetTime: Timestamp of when the verifier was last set."},"id":8144,"members":[{"constant":false,"id":8136,"mutability":"mutable","name":"owner","nameLocation":"1011:5:41","nodeType":"VariableDeclaration","scope":8144,"src":"1003:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8135,"name":"address","nodeType":"ElementaryTypeName","src":"1003:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8139,"mutability":"mutable","name":"verifier","nameLocation":"1036:8:41","nodeType":"VariableDeclaration","scope":8144,"src":"1026:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8138,"nodeType":"UserDefinedTypeName","pathNode":{"id":8137,"name":"IVerifier","nameLocations":["1026:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"1026:9:41"},"referencedDeclaration":8474,"src":"1026:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"},{"constant":false,"id":8141,"mutability":"mutable","name":"ownerSetTime","nameLocation":"1062:12:41","nodeType":"VariableDeclaration","scope":8144,"src":"1054:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8140,"name":"uint256","nodeType":"ElementaryTypeName","src":"1054:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8143,"mutability":"mutable","name":"verifierSetTime","nameLocation":"1092:15:41","nodeType":"VariableDeclaration","scope":8144,"src":"1084:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8142,"name":"uint256","nodeType":"ElementaryTypeName","src":"1084:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Record","nameLocation":"986:6:41","nodeType":"StructDefinition","scope":8458,"src":"979:135:41","visibility":"public"},{"constant":true,"functionSelector":"be8cd266","id":8149,"mutability":"constant","name":"REGISTRAR_MANAGER_ROLE","nameLocation":"1194:22:41","nodeType":"VariableDeclaration","scope":8458,"src":"1170:84:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1170:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245474953545241525f4d414e414745525f524f4c45","id":8147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1229:24:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","typeString":"literal_string \"REGISTRAR_MANAGER_ROLE\""},"value":"REGISTRAR_MANAGER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a7509","typeString":"literal_string \"REGISTRAR_MANAGER_ROLE\""}],"id":8146,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1219:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:35:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"f68e9553","id":8154,"mutability":"constant","name":"REGISTRAR_ROLE","nameLocation":"1329:14:41","nodeType":"VariableDeclaration","scope":8458,"src":"1305:68:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1305:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5245474953545241525f524f4c45","id":8152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1356:16:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_edcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","typeString":"literal_string \"REGISTRAR_ROLE\""},"value":"REGISTRAR_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_edcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c309238","typeString":"literal_string \"REGISTRAR_ROLE\""}],"id":8151,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1346:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"e63ab1e9","id":8159,"mutability":"constant","name":"PAUSER_ROLE","nameLocation":"1450:11:41","nodeType":"VariableDeclaration","scope":8458,"src":"1426:62:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5041555345525f524f4c45","id":8157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1474:13:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a","typeString":"literal_string \"PAUSER_ROLE\""},"value":"PAUSER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a","typeString":"literal_string \"PAUSER_ROLE\""}],"id":8156,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1464:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1464:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"baseFunctions":[8048],"constant":false,"documentation":{"id":8160,"nodeType":"StructuredDocumentation","src":"1495:66:41","text":" @dev Maps the namehash of a domain to a Record."},"functionSelector":"5b377fa2","id":8165,"mutability":"mutable","name":"domainHashToRecord","nameLocation":"1616:18:41","nodeType":"VariableDeclaration","scope":8458,"src":"1566:68:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record)"},"typeName":{"id":8164,"keyName":"nameHash","keyNameLocation":"1582:8:41","keyType":{"id":8161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1574:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1566:42:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record)"},"valueName":"domain","valueNameLocation":"1601:6:41","valueType":{"id":8163,"nodeType":"UserDefinedTypeName","pathNode":{"id":8162,"name":"Record","nameLocations":["1594:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":8144,"src":"1594:6:41"},"referencedDeclaration":8144,"src":"1594:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage_ptr","typeString":"struct SciRegistry.Record"}}},"visibility":"public"},{"body":{"id":8188,"nodeType":"Block","src":"2226:70:41","statements":[{"expression":{"arguments":[{"id":8184,"name":"REGISTRAR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"2250:14:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8185,"name":"REGISTRAR_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8149,"src":"2266:22:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8183,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[2026],"referencedDeclaration":2026,"src":"2236:13:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2236:53:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8187,"nodeType":"ExpressionStatement","src":"2236:53:41"}]},"documentation":{"id":8166,"nodeType":"StructuredDocumentation","src":"1641:377:41","text":" @dev Constructor to initialize the Registry contract.\n Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\n @param _initialDelay The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\n @param _initialDefaultAdmin The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information."},"id":8189,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8173,"name":"_initialDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8168,"src":"2148:13:41","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":8174,"name":"_initialDefaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8170,"src":"2163:20:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8175,"kind":"baseConstructorSpecifier","modifierName":{"id":8172,"name":"AccessControlDefaultAdminRules","nameLocations":["2117:30:41"],"nodeType":"IdentifierPath","referencedDeclaration":2436,"src":"2117:30:41"},"nodeType":"ModifierInvocation","src":"2117:67:41"},{"arguments":[{"arguments":[{"id":8179,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2215:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_SciRegistry_$8458","typeString":"contract SciRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SciRegistry_$8458","typeString":"contract SciRegistry"}],"id":8178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8177,"name":"address","nodeType":"ElementaryTypeName","src":"2207:7:41","typeDescriptions":{}}},"id":8180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8181,"kind":"baseConstructorSpecifier","modifierName":{"id":8176,"name":"DomainManager","nameLocations":["2193:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":7204,"src":"2193:13:41"},"nodeType":"ModifierInvocation","src":"2193:28:41"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8168,"mutability":"mutable","name":"_initialDelay","nameLocation":"2051:13:41","nodeType":"VariableDeclaration","scope":8189,"src":"2044:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":8167,"name":"uint48","nodeType":"ElementaryTypeName","src":"2044:6:41","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":8170,"mutability":"mutable","name":"_initialDefaultAdmin","nameLocation":"2082:20:41","nodeType":"VariableDeclaration","scope":8189,"src":"2074:28:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8169,"name":"address","nodeType":"ElementaryTypeName","src":"2074:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2034:74:41"},"returnParameters":{"id":8182,"nodeType":"ParameterList","parameters":[],"src":"2226:0:41"},"scope":8458,"src":"2023:273:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8056],"body":{"id":8202,"nodeType":"Block","src":"2433:51:41","statements":[{"expression":{"arguments":[{"id":8198,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8192,"src":"2459:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8199,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8194,"src":"2466:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8197,"name":"_registerDomain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8375,"src":"2443:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":8200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8201,"nodeType":"ExpressionStatement","src":"2443:34:41"}]},"documentation":{"id":8190,"nodeType":"StructuredDocumentation","src":"2302:58:41","text":" @dev See {ISciRegistry-registerDomain}."},"functionSelector":"a8c00861","id":8203,"implemented":true,"kind":"function","modifiers":[],"name":"registerDomain","nameLocation":"2374:14:41","nodeType":"FunctionDefinition","parameters":{"id":8195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8192,"mutability":"mutable","name":"owner","nameLocation":"2397:5:41","nodeType":"VariableDeclaration","scope":8203,"src":"2389:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8191,"name":"address","nodeType":"ElementaryTypeName","src":"2389:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8194,"mutability":"mutable","name":"domainHash","nameLocation":"2412:10:41","nodeType":"VariableDeclaration","scope":8203,"src":"2404:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2404:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2388:35:41"},"returnParameters":{"id":8196,"nodeType":"ParameterList","parameters":[],"src":"2433:0:41"},"scope":8458,"src":"2365:119:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8067],"body":{"id":8224,"nodeType":"Block","src":"2695:95:41","statements":[{"expression":{"arguments":[{"id":8215,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"2721:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8216,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8208,"src":"2728:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8214,"name":"_registerDomain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8375,"src":"2705:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":8217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2705:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8218,"nodeType":"ExpressionStatement","src":"2705:34:41"},{"expression":{"arguments":[{"id":8220,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8208,"src":"2762:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8221,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8211,"src":"2774:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"id":8219,"name":"_setVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8418,"src":"2749:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (bytes32,contract IVerifier)"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2749:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8223,"nodeType":"ExpressionStatement","src":"2749:34:41"}]},"documentation":{"id":8204,"nodeType":"StructuredDocumentation","src":"2490:70:41","text":" @dev See {ISciRegistry-registerDomainWithVerifier}."},"functionSelector":"dd738e6c","id":8225,"implemented":true,"kind":"function","modifiers":[],"name":"registerDomainWithVerifier","nameLocation":"2574:26:41","nodeType":"FunctionDefinition","parameters":{"id":8212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8206,"mutability":"mutable","name":"owner","nameLocation":"2618:5:41","nodeType":"VariableDeclaration","scope":8225,"src":"2610:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8205,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8208,"mutability":"mutable","name":"domainHash","nameLocation":"2641:10:41","nodeType":"VariableDeclaration","scope":8225,"src":"2633:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2633:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8211,"mutability":"mutable","name":"verifier","nameLocation":"2671:8:41","nodeType":"VariableDeclaration","scope":8225,"src":"2661:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8210,"nodeType":"UserDefinedTypeName","pathNode":{"id":8209,"name":"IVerifier","nameLocations":["2661:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"2661:9:41"},"referencedDeclaration":8474,"src":"2661:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"2600:85:41"},"returnParameters":{"id":8213,"nodeType":"ParameterList","parameters":[],"src":"2695:0:41"},"scope":8458,"src":"2565:225:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8235,"nodeType":"Block","src":"2924:25:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8232,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"2934:6:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2934:8:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8234,"nodeType":"ExpressionStatement","src":"2934:8:41"}]},"documentation":{"id":8226,"nodeType":"StructuredDocumentation","src":"2796:75:41","text":" @dev Pauses registering a domain and setting a verifier."},"functionSelector":"8456cb59","id":8236,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8229,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8159,"src":"2911:11:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8230,"kind":"modifierInvocation","modifierName":{"id":8228,"name":"onlyRole","nameLocations":["2902:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"2902:8:41"},"nodeType":"ModifierInvocation","src":"2902:21:41"}],"name":"pause","nameLocation":"2885:5:41","nodeType":"FunctionDefinition","parameters":{"id":8227,"nodeType":"ParameterList","parameters":[],"src":"2890:2:41"},"returnParameters":{"id":8231,"nodeType":"ParameterList","parameters":[],"src":"2924:0:41"},"scope":8458,"src":"2876:73:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8246,"nodeType":"Block","src":"3087:27:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8243,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"3097:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":8244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3097:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8245,"nodeType":"ExpressionStatement","src":"3097:10:41"}]},"documentation":{"id":8237,"nodeType":"StructuredDocumentation","src":"2955:77:41","text":" @dev Unpauses registering a domain and setting a verifier."},"functionSelector":"3f4ba83a","id":8247,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8240,"name":"PAUSER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8159,"src":"3074:11:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8241,"kind":"modifierInvocation","modifierName":{"id":8239,"name":"onlyRole","nameLocations":["3065:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"3065:8:41"},"nodeType":"ModifierInvocation","src":"3065:21:41"}],"name":"unpause","nameLocation":"3046:7:41","nodeType":"FunctionDefinition","parameters":{"id":8238,"nodeType":"ParameterList","parameters":[],"src":"3053:2:41"},"returnParameters":{"id":8242,"nodeType":"ParameterList","parameters":[],"src":"3087:0:41"},"scope":8458,"src":"3037:77:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8077],"body":{"id":8264,"nodeType":"Block","src":"3310:58:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8259,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8250,"src":"3339:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8258,"name":"domainOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8349,"src":"3327:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":8260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3327:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":8261,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8252,"src":"3354:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3327:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8257,"id":8263,"nodeType":"Return","src":"3320:41:41"}]},"documentation":{"id":8248,"nodeType":"StructuredDocumentation","src":"3120:57:41","text":" @dev See {ISciRegistry-isDomainOwner}."},"functionSelector":"8023597e","id":8265,"implemented":true,"kind":"function","modifiers":[],"name":"isDomainOwner","nameLocation":"3191:13:41","nodeType":"FunctionDefinition","overrides":{"id":8254,"nodeType":"OverrideSpecifier","overrides":[],"src":"3286:8:41"},"parameters":{"id":8253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8250,"mutability":"mutable","name":"domainHash","nameLocation":"3222:10:41","nodeType":"VariableDeclaration","scope":8265,"src":"3214:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3214:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8252,"mutability":"mutable","name":"account","nameLocation":"3250:7:41","nodeType":"VariableDeclaration","scope":8265,"src":"3242:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8251,"name":"address","nodeType":"ElementaryTypeName","src":"3242:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3204:59:41"},"returnParameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8265,"src":"3304:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8255,"name":"bool","nodeType":"ElementaryTypeName","src":"3304:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3303:6:41"},"scope":8458,"src":"3182:186:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[8111],"body":{"id":8284,"nodeType":"Block","src":"3566:51:41","statements":[{"expression":{"arguments":[{"id":8280,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8268,"src":"3589:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8281,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"3601:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"id":8279,"name":"_setVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8418,"src":"3576:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (bytes32,contract IVerifier)"}},"id":8282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3576:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8283,"nodeType":"ExpressionStatement","src":"3576:34:41"}]},"documentation":{"id":8266,"nodeType":"StructuredDocumentation","src":"3374:55:41","text":" @dev See {ISciRegistry-setVerifier}."},"functionSelector":"a692b9ef","id":8285,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":8274,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3542:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3546:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3542:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8276,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8268,"src":"3554:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8277,"kind":"modifierInvocation","modifierName":{"id":8273,"name":"onlyDomainOwner","nameLocations":["3526:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":7168,"src":"3526:15:41"},"nodeType":"ModifierInvocation","src":"3526:39:41"}],"name":"setVerifier","nameLocation":"3443:11:41","nodeType":"FunctionDefinition","parameters":{"id":8272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8268,"mutability":"mutable","name":"domainHash","nameLocation":"3472:10:41","nodeType":"VariableDeclaration","scope":8285,"src":"3464:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3464:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8271,"mutability":"mutable","name":"verifier","nameLocation":"3502:8:41","nodeType":"VariableDeclaration","scope":8285,"src":"3492:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8270,"nodeType":"UserDefinedTypeName","pathNode":{"id":8269,"name":"IVerifier","nameLocations":["3492:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"3492:9:41"},"referencedDeclaration":8474,"src":"3492:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"3454:62:41"},"returnParameters":{"id":8278,"nodeType":"ParameterList","parameters":[],"src":"3566:0:41"},"scope":8458,"src":"3434:183:41","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8094],"body":{"id":8299,"nodeType":"Block","src":"3772:63:41","statements":[{"expression":{"expression":{"baseExpression":{"id":8294,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"3789:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8296,"indexExpression":{"id":8295,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8288,"src":"3808:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3789:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3820:8:41","memberName":"verifier","nodeType":"MemberAccess","referencedDeclaration":8139,"src":"3789:39:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"functionReturnParameters":8293,"id":8298,"nodeType":"Return","src":"3782:46:41"}]},"documentation":{"id":8286,"nodeType":"StructuredDocumentation","src":"3623:58:41","text":" @dev See {ISciRegistry-domainVerifier}."},"functionSelector":"5a75199a","id":8300,"implemented":true,"kind":"function","modifiers":[],"name":"domainVerifier","nameLocation":"3695:14:41","nodeType":"FunctionDefinition","parameters":{"id":8289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8288,"mutability":"mutable","name":"domainHash","nameLocation":"3718:10:41","nodeType":"VariableDeclaration","scope":8300,"src":"3710:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3710:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3709:20:41"},"returnParameters":{"id":8293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8300,"src":"3761:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8291,"nodeType":"UserDefinedTypeName","pathNode":{"id":8290,"name":"IVerifier","nameLocations":["3761:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"3761:9:41"},"referencedDeclaration":8474,"src":"3761:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"3760:11:41"},"scope":8458,"src":"3686:149:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[8102],"body":{"id":8313,"nodeType":"Block","src":"4002:70:41","statements":[{"expression":{"expression":{"baseExpression":{"id":8308,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"4019:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8310,"indexExpression":{"id":8309,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8303,"src":"4038:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4019:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4050:15:41","memberName":"verifierSetTime","nodeType":"MemberAccess","referencedDeclaration":8143,"src":"4019:46:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8307,"id":8312,"nodeType":"Return","src":"4012:53:41"}]},"documentation":{"id":8301,"nodeType":"StructuredDocumentation","src":"3841:65:41","text":" @dev See {ISciRegistry-domainVerifierSetTime}."},"functionSelector":"a2a6c0eb","id":8314,"implemented":true,"kind":"function","modifiers":[],"name":"domainVerifierSetTime","nameLocation":"3920:21:41","nodeType":"FunctionDefinition","parameters":{"id":8304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8303,"mutability":"mutable","name":"domainHash","nameLocation":"3950:10:41","nodeType":"VariableDeclaration","scope":8314,"src":"3942:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3942:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3941:20:41"},"returnParameters":{"id":8307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8314,"src":"3993:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3993:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3992:9:41"},"scope":8458,"src":"3911:161:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[1843],"body":{"id":8333,"nodeType":"Block","src":"4458:42:41","statements":[{"expression":{"arguments":[{"id":8329,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8317,"src":"4479:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8330,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8319,"src":"4485:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8328,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[1970],"referencedDeclaration":1970,"src":"4468:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":8331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4468:25:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8332,"nodeType":"ExpressionStatement","src":"4468:25:41"}]},"documentation":{"id":8315,"nodeType":"StructuredDocumentation","src":"4078:280:41","text":" @dev Grants a role to an account.\n @param role The role to grant.\n @param account The account receiving the role.\n Note: Overrides the OpenZeppelin function to require the\n caller to have the admin role for the role being granted."},"functionSelector":"2f2ff15d","id":8334,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":8324,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8317,"src":"4451:4:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8323,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1321,"src":"4438:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8326,"kind":"modifierInvocation","modifierName":{"id":8322,"name":"onlyRole","nameLocations":["4429:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"4429:8:41"},"nodeType":"ModifierInvocation","src":"4429:28:41"}],"name":"grantRole","nameLocation":"4372:9:41","nodeType":"FunctionDefinition","overrides":{"id":8321,"nodeType":"OverrideSpecifier","overrides":[],"src":"4420:8:41"},"parameters":{"id":8320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8317,"mutability":"mutable","name":"role","nameLocation":"4390:4:41","nodeType":"VariableDeclaration","scope":8334,"src":"4382:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4382:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8319,"mutability":"mutable","name":"account","nameLocation":"4404:7:41","nodeType":"VariableDeclaration","scope":8334,"src":"4396:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8318,"name":"address","nodeType":"ElementaryTypeName","src":"4396:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4381:31:41"},"returnParameters":{"id":8327,"nodeType":"ParameterList","parameters":[],"src":"4458:0:41"},"scope":8458,"src":"4363:137:41","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8085],"body":{"id":8348,"nodeType":"Block","src":"4654:60:41","statements":[{"expression":{"expression":{"baseExpression":{"id":8343,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"4671:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8345,"indexExpression":{"id":8344,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"4690:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4671:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4702:5:41","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":8136,"src":"4671:36:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":8342,"id":8347,"nodeType":"Return","src":"4664:43:41"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"4506:55:41","text":" @dev See {ISciRegistry-domainOwner}."},"functionSelector":"d26cdd20","id":8349,"implemented":true,"kind":"function","modifiers":[],"name":"domainOwner","nameLocation":"4575:11:41","nodeType":"FunctionDefinition","overrides":{"id":8339,"nodeType":"OverrideSpecifier","overrides":[],"src":"4627:8:41"},"parameters":{"id":8338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"domainHash","nameLocation":"4595:10:41","nodeType":"VariableDeclaration","scope":8349,"src":"4587:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4587:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4586:20:41"},"returnParameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8349,"src":"4645:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8340,"name":"address","nodeType":"ElementaryTypeName","src":"4645:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4644:9:41"},"scope":8458,"src":"4566:148:41","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8374,"nodeType":"Block","src":"5220:113:41","statements":[{"expression":{"arguments":[{"id":8363,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"5246:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8364,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8352,"src":"5258:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8362,"name":"_setDomainOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8457,"src":"5230:15:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8366,"nodeType":"ExpressionStatement","src":"5230:34:41"},{"eventCall":{"arguments":[{"expression":{"id":8368,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5296:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5300:6:41","memberName":"sender","nodeType":"MemberAccess","src":"5296:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8370,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8352,"src":"5308:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8371,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"5315:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8367,"name":"DomainRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8009,"src":"5279:16:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,address,bytes32)"}},"id":8372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5279:47:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8373,"nodeType":"EmitStatement","src":"5274:52:41"}]},"documentation":{"id":8350,"nodeType":"StructuredDocumentation","src":"4720:366:41","text":" @dev Base function to register a domain.\n @param owner The owner of the domain.\n @param domainHash The namehash of the domain being registered.\n Requirements:\n - the owner must be authorized by the authorizer.\n - The contract must not be paused.\n May emit a {DomainRegistered} event."},"id":8375,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":8357,"name":"REGISTRAR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"5190:14:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8358,"kind":"modifierInvocation","modifierName":{"id":8356,"name":"onlyRole","nameLocations":["5181:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":1233,"src":"5181:8:41"},"nodeType":"ModifierInvocation","src":"5181:24:41"},{"id":8360,"kind":"modifierInvocation","modifierName":{"id":8359,"name":"whenNotPaused","nameLocations":["5206:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":3533,"src":"5206:13:41"},"nodeType":"ModifierInvocation","src":"5206:13:41"}],"name":"_registerDomain","nameLocation":"5100:15:41","nodeType":"FunctionDefinition","parameters":{"id":8355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8352,"mutability":"mutable","name":"owner","nameLocation":"5133:5:41","nodeType":"VariableDeclaration","scope":8375,"src":"5125:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8351,"name":"address","nodeType":"ElementaryTypeName","src":"5125:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8354,"mutability":"mutable","name":"domainHash","nameLocation":"5156:10:41","nodeType":"VariableDeclaration","scope":8375,"src":"5148:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5148:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5115:57:41"},"returnParameters":{"id":8361,"nodeType":"ParameterList","parameters":[],"src":"5220:0:41"},"scope":8458,"src":"5091:242:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8417,"nodeType":"Block","src":"5681:287:41","statements":[{"assignments":[8388],"declarations":[{"constant":false,"id":8388,"mutability":"mutable","name":"oldVerifier","nameLocation":"5701:11:41","nodeType":"VariableDeclaration","scope":8417,"src":"5691:21:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8387,"nodeType":"UserDefinedTypeName","pathNode":{"id":8386,"name":"IVerifier","nameLocations":["5691:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"5691:9:41"},"referencedDeclaration":8474,"src":"5691:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"id":8393,"initialValue":{"expression":{"baseExpression":{"id":8389,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"5715:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8391,"indexExpression":{"id":8390,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"5734:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5715:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5746:8:41","memberName":"verifier","nodeType":"MemberAccess","referencedDeclaration":8139,"src":"5715:39:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"nodeType":"VariableDeclarationStatement","src":"5691:63:41"},{"expression":{"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":8394,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"5764:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8396,"indexExpression":{"id":8395,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"5783:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5764:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5795:8:41","memberName":"verifier","nodeType":"MemberAccess","referencedDeclaration":8139,"src":"5764:39:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8398,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8381,"src":"5806:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"src":"5764:50:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"id":8400,"nodeType":"ExpressionStatement","src":"5764:50:41"},{"expression":{"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":8401,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"5824:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8403,"indexExpression":{"id":8402,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"5843:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5824:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5855:15:41","memberName":"verifierSetTime","nodeType":"MemberAccess","referencedDeclaration":8143,"src":"5824:46:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8405,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5873:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5879:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"5873:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5824:64:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8408,"nodeType":"ExpressionStatement","src":"5824:64:41"},{"eventCall":{"arguments":[{"expression":{"id":8410,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5915:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5919:6:41","memberName":"sender","nodeType":"MemberAccess","src":"5915:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8412,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"5927:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8413,"name":"oldVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8388,"src":"5939:11:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},{"id":8414,"name":"verifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8381,"src":"5952:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}],"id":8409,"name":"VerifierSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8022,"src":"5903:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IVerifier_$8474_$_t_contract$_IVerifier_$8474_$returns$__$","typeString":"function (address,bytes32,contract IVerifier,contract IVerifier)"}},"id":8415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5903:58:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8416,"nodeType":"EmitStatement","src":"5898:63:41"}]},"documentation":{"id":8376,"nodeType":"StructuredDocumentation","src":"5339:253:41","text":" @dev Sets the verifier, updates the verifier timestamp and\n emits VerifierSet events.\n All updates to a verifier should be through this function.\n Requirements:\n - The contract must not be paused."},"id":8418,"implemented":true,"kind":"function","modifiers":[{"id":8384,"kind":"modifierInvocation","modifierName":{"id":8383,"name":"whenNotPaused","nameLocations":["5667:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":3533,"src":"5667:13:41"},"nodeType":"ModifierInvocation","src":"5667:13:41"}],"name":"_setVerifier","nameLocation":"5606:12:41","nodeType":"FunctionDefinition","parameters":{"id":8382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8378,"mutability":"mutable","name":"domainHash","nameLocation":"5627:10:41","nodeType":"VariableDeclaration","scope":8418,"src":"5619:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5619:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8381,"mutability":"mutable","name":"verifier","nameLocation":"5649:8:41","nodeType":"VariableDeclaration","scope":8418,"src":"5639:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"},"typeName":{"id":8380,"nodeType":"UserDefinedTypeName","pathNode":{"id":8379,"name":"IVerifier","nameLocations":["5639:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"5639:9:41"},"referencedDeclaration":8474,"src":"5639:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_IVerifier_$8474","typeString":"contract IVerifier"}},"visibility":"internal"}],"src":"5618:40:41"},"returnParameters":{"id":8385,"nodeType":"ParameterList","parameters":[],"src":"5681:0:41"},"scope":8458,"src":"5597:371:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":8456,"nodeType":"Block","src":"6162:261:41","statements":[{"assignments":[8427],"declarations":[{"constant":false,"id":8427,"mutability":"mutable","name":"oldOwner","nameLocation":"6180:8:41","nodeType":"VariableDeclaration","scope":8456,"src":"6172:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8426,"name":"address","nodeType":"ElementaryTypeName","src":"6172:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8432,"initialValue":{"expression":{"baseExpression":{"id":8428,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"6191:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8430,"indexExpression":{"id":8429,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"6210:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6191:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6222:5:41","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":8136,"src":"6191:36:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6172:55:41"},{"expression":{"id":8438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":8433,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"6237:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8435,"indexExpression":{"id":8434,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"6256:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6237:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6268:5:41","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":8136,"src":"6237:36:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8437,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8423,"src":"6276:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6237:44:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8439,"nodeType":"ExpressionStatement","src":"6237:44:41"},{"expression":{"id":8446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":8440,"name":"domainHashToRecord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8165,"src":"6291:18:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Record_$8144_storage_$","typeString":"mapping(bytes32 => struct SciRegistry.Record storage ref)"}},"id":8442,"indexExpression":{"id":8441,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"6310:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6291:30:41","typeDescriptions":{"typeIdentifier":"t_struct$_Record_$8144_storage","typeString":"struct SciRegistry.Record storage ref"}},"id":8443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6322:12:41","memberName":"ownerSetTime","nodeType":"MemberAccess","referencedDeclaration":8141,"src":"6291:43:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6337:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6343:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"6337:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6291:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8447,"nodeType":"ExpressionStatement","src":"6291:61:41"},{"eventCall":{"arguments":[{"expression":{"id":8449,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6376:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6380:6:41","memberName":"sender","nodeType":"MemberAccess","src":"6376:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8451,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8421,"src":"6388:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":8452,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8427,"src":"6400:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8453,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8423,"src":"6410:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8448,"name":"OwnerSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8033,"src":"6367:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (address,bytes32,address,address)"}},"id":8454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6367:49:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8455,"nodeType":"EmitStatement","src":"6362:54:41"}]},"documentation":{"id":8419,"nodeType":"StructuredDocumentation","src":"5974:115:41","text":" @dev Sets the owner of a domain,\n All updates to an owner should be through this function."},"id":8457,"implemented":true,"kind":"function","modifiers":[],"name":"_setDomainOwner","nameLocation":"6103:15:41","nodeType":"FunctionDefinition","parameters":{"id":8424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8421,"mutability":"mutable","name":"domainHash","nameLocation":"6127:10:41","nodeType":"VariableDeclaration","scope":8457,"src":"6119:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6119:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8423,"mutability":"mutable","name":"owner","nameLocation":"6147:5:41","nodeType":"VariableDeclaration","scope":8457,"src":"6139:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8422,"name":"address","nodeType":"ElementaryTypeName","src":"6139:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6118:35:41"},"returnParameters":{"id":8425,"nodeType":"ParameterList","parameters":[],"src":"6162:0:41"},"scope":8458,"src":"6094:329:41","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":8459,"src":"531:5894:41","usedErrors":[1498,1501,2448,2451,2456,3513,3516,5384,7154],"usedEvents":[1510,1519,1528,2463,2466,2473,2476,3505,3510,8009,8022,8033]}],"src":"37:6389:41"},"id":41},"contracts/Verifiers/IVerifier.sol":{"ast":{"absolutePath":"contracts/Verifiers/IVerifier.sol","exportedSymbols":{"IVerifier":[8474]},"id":8475,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":8460,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:42"},{"abstract":false,"baseContracts":[],"canonicalName":"IVerifier","contractDependencies":[],"contractKind":"interface","documentation":{"id":8461,"nodeType":"StructuredDocumentation","src":"62:158:42","text":" @title IVerifier\n @dev Required interface of a Verifier compliant contract for the SCI Registry.\n @custom:security-contact security@sci.domains"},"fullyImplemented":false,"id":8474,"linearizedBaseContracts":[8474],"name":"IVerifier","nameLocation":"231:9:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8462,"nodeType":"StructuredDocumentation","src":"247:685:42","text":" @dev Verifies if a contract in a specific chain is authorized\n to interact within a domain.\n @param domainHash The domain's namehash.\n @param contractAddress The address of the contract trying to be verified.\n @param chainId The chain where the contract is deployed.\n @return a uint256 representing the time when the contract was verified.\n If the contract is not verified, it returns 0.\n Note: The return timestamp is a best effor approach to provide the time when the contract\n was verified. For verifiers that can't know when the contract was verified they could\n return when the verifier was deployed."},"functionSelector":"046852d0","id":8473,"implemented":false,"kind":"function","modifiers":[],"name":"isVerified","nameLocation":"946:10:42","nodeType":"FunctionDefinition","parameters":{"id":8469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8464,"mutability":"mutable","name":"domainHash","nameLocation":"974:10:42","nodeType":"VariableDeclaration","scope":8473,"src":"966:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"966:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8466,"mutability":"mutable","name":"contractAddress","nameLocation":"1002:15:42","nodeType":"VariableDeclaration","scope":8473,"src":"994:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8465,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8468,"mutability":"mutable","name":"chainId","nameLocation":"1035:7:42","nodeType":"VariableDeclaration","scope":8473,"src":"1027:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"956:92:42"},"returnParameters":{"id":8472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8471,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8473,"src":"1072:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1072:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1071:9:42"},"scope":8474,"src":"937:144:42","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8475,"src":"221:862:42","usedErrors":[],"usedEvents":[]}],"src":"37:1047:42"},"id":42},"contracts/Verifiers/PublicListVerifier.sol":{"ast":{"absolutePath":"contracts/Verifiers/PublicListVerifier.sol","exportedSymbols":{"DomainManager":[7204],"IVerifier":[8474],"PublicListVerifier":[8739]},"id":8740,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":8476,"literals":["solidity","0.8",".28"],"nodeType":"PragmaDirective","src":"37:23:43"},{"absolutePath":"contracts/Verifiers/IVerifier.sol","file":"./IVerifier.sol","id":8478,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8740,"sourceUnit":8475,"src":"62:42:43","symbolAliases":[{"foreign":{"id":8477,"name":"IVerifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"70:9:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/DomainMangager/DomainManager.sol","file":"../DomainMangager/DomainManager.sol","id":8480,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8740,"sourceUnit":7205,"src":"105:66:43","symbolAliases":[{"foreign":{"id":8479,"name":"DomainManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7204,"src":"113:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8482,"name":"IVerifier","nameLocations":["590:9:43"],"nodeType":"IdentifierPath","referencedDeclaration":8474,"src":"590:9:43"},"id":8483,"nodeType":"InheritanceSpecifier","src":"590:9:43"},{"baseName":{"id":8484,"name":"DomainManager","nameLocations":["601:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":7204,"src":"601:13:43"},"id":8485,"nodeType":"InheritanceSpecifier","src":"601:13:43"}],"canonicalName":"PublicListVerifier","contractDependencies":[],"contractKind":"contract","documentation":{"id":8481,"nodeType":"StructuredDocumentation","src":"173:385:43","text":" @title PublicListVerifier\n @dev This contract implements the Verifier interface.\n Domain owners can add or remove addresses that can interact within their domain.\n If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes\n this contract is verified for all chains for that domain.\n @custom:security-contact security@sci.domains"},"fullyImplemented":true,"id":8739,"linearizedBaseContracts":[8739,7204,8474],"name":"PublicListVerifier","nameLocation":"568:18:43","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":8492,"mutability":"constant","name":"MAX_INT","nameLocation":"646:7:43","nodeType":"VariableDeclaration","scope":8739,"src":"621:47:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8486,"name":"uint256","nodeType":"ElementaryTypeName","src":"621:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"id":8491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1","typeString":"int_const 1157...(70 digits omitted)...9936"},"id":8489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":8487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"656:1:43","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323536","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"661:3:43","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"656:8:43","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639936_by_1","typeString":"int_const 1157...(70 digits omitted)...9936"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":8490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:1:43","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"656:12:43","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"}},"visibility":"private"},{"constant":false,"functionSelector":"79fb477a","id":8500,"mutability":"mutable","name":"verifiedContracts","nameLocation":"877:17:43","nodeType":"VariableDeclaration","scope":8739,"src":"741:153:43","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"},"typeName":{"id":8499,"keyName":"domainHash","keyNameLocation":"757:10:43","keyType":{"id":8493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"749:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"741:120:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":8498,"keyName":"contractAddress","keyNameLocation":"787:15:43","keyType":{"id":8494,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"771:89:43","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":8497,"keyName":"chainId","keyNameLocation":"822:7:43","keyType":{"id":8495,"name":"uint256","nodeType":"ElementaryTypeName","src":"814:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"806:53:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"registerTimestamp","valueNameLocation":"841:17:43","valueType":{"id":8496,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":8501,"nodeType":"StructuredDocumentation","src":"901:107:43","text":"  @dev Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`."},"eventSelector":"36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75","id":8511,"name":"AddressRemoved","nameLocation":"1019:14:43","nodeType":"EventDefinition","parameters":{"id":8510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8503,"indexed":true,"mutability":"mutable","name":"domainHash","nameLocation":"1059:10:43","nodeType":"VariableDeclaration","scope":8511,"src":"1043:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1043:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8505,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1095:7:43","nodeType":"VariableDeclaration","scope":8511,"src":"1079:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8504,"name":"uint256","nodeType":"ElementaryTypeName","src":"1079:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8507,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"1128:15:43","nodeType":"VariableDeclaration","scope":8511,"src":"1112:31:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8506,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8509,"indexed":false,"mutability":"mutable","name":"msgSender","nameLocation":"1161:9:43","nodeType":"VariableDeclaration","scope":8511,"src":"1153:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8508,"name":"address","nodeType":"ElementaryTypeName","src":"1153:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:143:43"},"src":"1013:164:43"},{"anonymous":false,"documentation":{"id":8512,"nodeType":"StructuredDocumentation","src":"1183:104:43","text":"  @dev Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`."},"eventSelector":"c177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0","id":8522,"name":"AddressAdded","nameLocation":"1298:12:43","nodeType":"EventDefinition","parameters":{"id":8521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8514,"indexed":true,"mutability":"mutable","name":"domainHash","nameLocation":"1336:10:43","nodeType":"VariableDeclaration","scope":8522,"src":"1320:26:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1320:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8516,"indexed":true,"mutability":"mutable","name":"chainId","nameLocation":"1372:7:43","nodeType":"VariableDeclaration","scope":8522,"src":"1356:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1356:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8518,"indexed":true,"mutability":"mutable","name":"contractAddress","nameLocation":"1405:15:43","nodeType":"VariableDeclaration","scope":8522,"src":"1389:31:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8517,"name":"address","nodeType":"ElementaryTypeName","src":"1389:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8520,"indexed":false,"mutability":"mutable","name":"msgSender","nameLocation":"1438:9:43","nodeType":"VariableDeclaration","scope":8522,"src":"1430:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8519,"name":"address","nodeType":"ElementaryTypeName","src":"1430:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1310:143:43"},"src":"1292:162:43"},{"body":{"id":8530,"nodeType":"Block","src":"1516:2:43","statements":[]},"id":8531,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":8527,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8524,"src":"1505:9:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":8528,"kind":"baseConstructorSpecifier","modifierName":{"id":8526,"name":"DomainManager","nameLocations":["1491:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":7204,"src":"1491:13:43"},"nodeType":"ModifierInvocation","src":"1491:24:43"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8524,"mutability":"mutable","name":"_registry","nameLocation":"1480:9:43","nodeType":"VariableDeclaration","scope":8531,"src":"1472:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8523,"name":"address","nodeType":"ElementaryTypeName","src":"1472:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1471:19:43"},"returnParameters":{"id":8529,"nodeType":"ParameterList","parameters":[],"src":"1516:0:43"},"scope":8739,"src":"1460:58:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":8608,"nodeType":"Block","src":"1888:496:43","statements":[{"body":{"id":8606,"nodeType":"Block","src":"1946:432:43","statements":[{"body":{"id":8600,"nodeType":"Block","src":"2002:307:43","statements":[{"expression":{"id":8580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8565,"name":"verifiedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"2020:17:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"}},"id":8575,"indexExpression":{"id":8566,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"2038:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2020:29:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":8576,"indexExpression":{"baseExpression":{"id":8567,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2050:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8569,"indexExpression":{"id":8568,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2068:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2050:20:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2020:51:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8577,"indexExpression":{"baseExpression":{"baseExpression":{"id":8570,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8541,"src":"2072:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8572,"indexExpression":{"id":8571,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2081:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2072:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8574,"indexExpression":{"id":8573,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"2084:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2072:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2020:67:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":8578,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2090:5:43","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2117:9:43","memberName":"timestamp","nodeType":"MemberAccess","src":"2090:36:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2020:106:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8581,"nodeType":"ExpressionStatement","src":"2020:106:43"},{"eventCall":{"arguments":[{"id":8583,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"2162:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"baseExpression":{"id":8584,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8541,"src":"2174:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8586,"indexExpression":{"id":8585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2183:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2174:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8588,"indexExpression":{"id":8587,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"2186:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2174:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":8589,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2190:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8591,"indexExpression":{"id":8590,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2208:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2190:20:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8592,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2212:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2216:6:43","memberName":"sender","nodeType":"MemberAccess","src":"2212:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8582,"name":"AddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8522,"src":"2149:12:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,address,address)"}},"id":8594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2149:74:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8595,"nodeType":"EmitStatement","src":"2144:79:43"},{"id":8599,"nodeType":"UncheckedBlock","src":"2241:54:43","statements":[{"expression":{"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2273:3:43","subExpression":{"id":8596,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"2275:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8598,"nodeType":"ExpressionStatement","src":"2273:3:43"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8559,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8557,"src":"1976:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":8560,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8541,"src":"1980:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8562,"indexExpression":{"id":8561,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"1989:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1980:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1992:6:43","memberName":"length","nodeType":"MemberAccess","src":"1980:18:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1976:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8601,"initializationExpression":{"assignments":[8557],"declarations":[{"constant":false,"id":8557,"mutability":"mutable","name":"j","nameLocation":"1973:1:43","nodeType":"VariableDeclaration","scope":8601,"src":"1965:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8558,"nodeType":"VariableDeclarationStatement","src":"1965:9:43"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"1960:349:43"},{"id":8605,"nodeType":"UncheckedBlock","src":"2322:46:43","statements":[{"expression":{"id":8603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2350:3:43","subExpression":{"id":8602,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"2352:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8604,"nodeType":"ExpressionStatement","src":"2350:3:43"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8552,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8550,"src":"1914:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8553,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"1918:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1936:6:43","memberName":"length","nodeType":"MemberAccess","src":"1918:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1914:28:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8607,"initializationExpression":{"assignments":[8550],"declarations":[{"constant":false,"id":8550,"mutability":"mutable","name":"i","nameLocation":"1911:1:43","nodeType":"VariableDeclaration","scope":8607,"src":"1903:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8549,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8551,"nodeType":"VariableDeclarationStatement","src":"1903:9:43"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"1898:480:43"}]},"documentation":{"id":8532,"nodeType":"StructuredDocumentation","src":"1524:169:43","text":" @dev Adds multiple addresses in multiple chains to the domain.\n Requirements:\n - The caller must be the owner of the domain."},"functionSelector":"0f59a498","id":8609,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":8544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1864:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1868:6:43","memberName":"sender","nodeType":"MemberAccess","src":"1864:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8546,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"1876:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8547,"kind":"modifierInvocation","modifierName":{"id":8543,"name":"onlyDomainOwner","nameLocations":["1848:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":7168,"src":"1848:15:43"},"nodeType":"ModifierInvocation","src":"1848:39:43"}],"name":"addAddresses","nameLocation":"1707:12:43","nodeType":"FunctionDefinition","parameters":{"id":8542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8534,"mutability":"mutable","name":"domainHash","nameLocation":"1737:10:43","nodeType":"VariableDeclaration","scope":8609,"src":"1729:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1729:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8537,"mutability":"mutable","name":"contractAddresses","nameLocation":"1776:17:43","nodeType":"VariableDeclaration","scope":8609,"src":"1757:36:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8535,"name":"address","nodeType":"ElementaryTypeName","src":"1757:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8536,"nodeType":"ArrayTypeName","src":"1757:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8541,"mutability":"mutable","name":"chainIds","nameLocation":"1824:8:43","nodeType":"VariableDeclaration","scope":8609,"src":"1803:29:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[][]"},"typeName":{"baseType":{"baseType":{"id":8538,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8539,"nodeType":"ArrayTypeName","src":"1803:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"id":8540,"nodeType":"ArrayTypeName","src":"1803:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr","typeString":"uint256[][]"}},"visibility":"internal"}],"src":"1719:119:43"},"returnParameters":{"id":8548,"nodeType":"ParameterList","parameters":[],"src":"1888:0:43"},"scope":8739,"src":"1698:686:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":8688,"nodeType":"Block","src":"2760:466:43","statements":[{"body":{"id":8686,"nodeType":"Block","src":"2818:402:43","statements":[{"body":{"id":8680,"nodeType":"Block","src":"2877:274:43","statements":[{"expression":{"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8646,"name":"verifiedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"2895:17:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"}},"id":8656,"indexExpression":{"id":8647,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"2913:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2895:29:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":8657,"indexExpression":{"baseExpression":{"id":8648,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"2925:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8650,"indexExpression":{"id":8649,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"2943:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2925:20:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2895:51:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8658,"indexExpression":{"baseExpression":{"baseExpression":{"id":8651,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"2947:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8653,"indexExpression":{"id":8652,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"2956:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2947:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8655,"indexExpression":{"id":8654,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"2959:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2947:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2895:67:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":8659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2965:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2895:71:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8661,"nodeType":"ExpressionStatement","src":"2895:71:43"},{"eventCall":{"arguments":[{"id":8663,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"3004:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"baseExpression":{"id":8664,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"3016:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8666,"indexExpression":{"id":8665,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"3025:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3016:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8668,"indexExpression":{"id":8667,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"3028:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3016:14:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":8669,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"3032:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8671,"indexExpression":{"id":8670,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"3050:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3032:20:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":8672,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3054:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3058:6:43","memberName":"sender","nodeType":"MemberAccess","src":"3054:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8662,"name":"AddressRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8511,"src":"2989:14:43","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,address,address)"}},"id":8674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:76:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8675,"nodeType":"EmitStatement","src":"2984:81:43"},{"id":8679,"nodeType":"UncheckedBlock","src":"3083:54:43","statements":[{"expression":{"id":8677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3115:3:43","subExpression":{"id":8676,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"3117:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8678,"nodeType":"ExpressionStatement","src":"3115:3:43"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8637,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"2848:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":8638,"name":"chainIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8619,"src":"2852:8:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[] calldata[] calldata"}},"id":8640,"indexExpression":{"id":8639,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"2861:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2852:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2864:6:43","memberName":"length","nodeType":"MemberAccess","src":"2852:18:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2848:22:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8681,"initializationExpression":{"assignments":[8635],"declarations":[{"constant":false,"id":8635,"mutability":"mutable","name":"j","nameLocation":"2845:1:43","nodeType":"VariableDeclaration","scope":8681,"src":"2837:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8634,"name":"uint256","nodeType":"ElementaryTypeName","src":"2837:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8636,"nodeType":"VariableDeclarationStatement","src":"2837:9:43"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":8644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2872:3:43","subExpression":{"id":8643,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"2874:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8645,"nodeType":"ExpressionStatement","src":"2872:3:43"},"nodeType":"ForStatement","src":"2832:319:43"},{"id":8685,"nodeType":"UncheckedBlock","src":"3164:46:43","statements":[{"expression":{"id":8683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3192:3:43","subExpression":{"id":8682,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"3194:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8684,"nodeType":"ExpressionStatement","src":"3192:3:43"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8630,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8628,"src":"2786:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8631,"name":"contractAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8615,"src":"2790:17:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2808:6:43","memberName":"length","nodeType":"MemberAccess","src":"2790:24:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2786:28:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8687,"initializationExpression":{"assignments":[8628],"declarations":[{"constant":false,"id":8628,"mutability":"mutable","name":"i","nameLocation":"2783:1:43","nodeType":"VariableDeclaration","scope":8687,"src":"2775:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8627,"name":"uint256","nodeType":"ElementaryTypeName","src":"2775:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8629,"nodeType":"VariableDeclarationStatement","src":"2775:9:43"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"2770:450:43"}]},"documentation":{"id":8610,"nodeType":"StructuredDocumentation","src":"2390:172:43","text":" @dev Removes multiple addresses in multiple chains to the domain.\n Requirements:\n - The caller must be the owner of the domain."},"functionSelector":"82ef31d9","id":8689,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":8622,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2736:3:43","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2740:6:43","memberName":"sender","nodeType":"MemberAccess","src":"2736:10:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8624,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"2748:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8625,"kind":"modifierInvocation","modifierName":{"id":8621,"name":"onlyDomainOwner","nameLocations":["2720:15:43"],"nodeType":"IdentifierPath","referencedDeclaration":7168,"src":"2720:15:43"},"nodeType":"ModifierInvocation","src":"2720:39:43"}],"name":"removeAddresses","nameLocation":"2576:15:43","nodeType":"FunctionDefinition","parameters":{"id":8620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8612,"mutability":"mutable","name":"domainHash","nameLocation":"2609:10:43","nodeType":"VariableDeclaration","scope":8689,"src":"2601:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2601:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8615,"mutability":"mutable","name":"contractAddresses","nameLocation":"2648:17:43","nodeType":"VariableDeclaration","scope":8689,"src":"2629:36:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":8613,"name":"address","nodeType":"ElementaryTypeName","src":"2629:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8614,"nodeType":"ArrayTypeName","src":"2629:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":8619,"mutability":"mutable","name":"chainIds","nameLocation":"2696:8:43","nodeType":"VariableDeclaration","scope":8689,"src":"2675:29:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","typeString":"uint256[][]"},"typeName":{"baseType":{"baseType":{"id":8616,"name":"uint256","nodeType":"ElementaryTypeName","src":"2675:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8617,"nodeType":"ArrayTypeName","src":"2675:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"id":8618,"nodeType":"ArrayTypeName","src":"2675:11:43","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr","typeString":"uint256[][]"}},"visibility":"internal"}],"src":"2591:119:43"},"returnParameters":{"id":8626,"nodeType":"ParameterList","parameters":[],"src":"2760:0:43"},"scope":8739,"src":"2567:659:43","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8473],"body":{"id":8737,"nodeType":"Block","src":"3432:413:43","statements":[{"assignments":[8702],"declarations":[{"constant":false,"id":8702,"mutability":"mutable","name":"verifiedContract","nameLocation":"3450:16:43","nodeType":"VariableDeclaration","scope":8737,"src":"3442:24:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8701,"name":"uint256","nodeType":"ElementaryTypeName","src":"3442:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8710,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8703,"name":"verifiedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"3469:17:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"}},"id":8705,"indexExpression":{"id":8704,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"3487:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3469:29:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":8707,"indexExpression":{"id":8706,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"3499:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3469:46:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8709,"indexExpression":{"id":8708,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8696,"src":"3516:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3469:55:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3442:82:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8711,"name":"verifiedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"3539:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3559:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3539:21:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8717,"nodeType":"IfStatement","src":"3535:75:43","trueBody":{"id":8716,"nodeType":"Block","src":"3562:48:43","statements":[{"expression":{"id":8714,"name":"verifiedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"3583:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8700,"id":8715,"nodeType":"Return","src":"3576:23:43"}]}},{"expression":{"id":8726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8718,"name":"verifiedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"3620:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":8719,"name":"verifiedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8500,"src":"3639:17:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$","typeString":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))"}},"id":8721,"indexExpression":{"id":8720,"name":"domainHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"3657:10:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3639:29:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":8723,"indexExpression":{"id":8722,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"3669:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3639:46:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":8725,"indexExpression":{"id":8724,"name":"MAX_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"3686:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3639:55:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3620:74:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8727,"nodeType":"ExpressionStatement","src":"3620:74:43"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8728,"name":"verifiedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"3708:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":8729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3728:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3708:21:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8734,"nodeType":"IfStatement","src":"3704:75:43","trueBody":{"id":8733,"nodeType":"Block","src":"3731:48:43","statements":[{"expression":{"id":8731,"name":"verifiedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"3752:16:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8700,"id":8732,"nodeType":"Return","src":"3745:23:43"}]}},{"expression":{"hexValue":"30","id":8735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3837:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":8700,"id":8736,"nodeType":"Return","src":"3830:8:43"}]},"documentation":{"id":8690,"nodeType":"StructuredDocumentation","src":"3232:51:43","text":" @dev See {IVerifier-isVerified}."},"functionSelector":"046852d0","id":8738,"implemented":true,"kind":"function","modifiers":[],"name":"isVerified","nameLocation":"3297:10:43","nodeType":"FunctionDefinition","parameters":{"id":8697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8692,"mutability":"mutable","name":"domainHash","nameLocation":"3325:10:43","nodeType":"VariableDeclaration","scope":8738,"src":"3317:18:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3317:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8694,"mutability":"mutable","name":"contractAddress","nameLocation":"3353:15:43","nodeType":"VariableDeclaration","scope":8738,"src":"3345:23:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8693,"name":"address","nodeType":"ElementaryTypeName","src":"3345:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8696,"mutability":"mutable","name":"chainId","nameLocation":"3386:7:43","nodeType":"VariableDeclaration","scope":8738,"src":"3378:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8695,"name":"uint256","nodeType":"ElementaryTypeName","src":"3378:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3307:92:43"},"returnParameters":{"id":8700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8738,"src":"3423:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8698,"name":"uint256","nodeType":"ElementaryTypeName","src":"3423:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3422:9:43"},"scope":8739,"src":"3288:557:43","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8740,"src":"559:3288:43","usedErrors":[7154],"usedEvents":[8511,8522]}],"src":"37:3811:43"},"id":43}},"contracts":{"@ensdomains/ens-contracts/contracts/registry/ENS.sol":{"ENS":{"abi":[{"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":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"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":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"recordExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setSubnodeRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isApprovedForAll(address,address)":"e985e9c5","owner(bytes32)":"02571be3","recordExists(bytes32)":"f79fe538","resolver(bytes32)":"0178b8bf","setApprovalForAll(address,bool)":"a22cb465","setOwner(bytes32,address)":"5b0fc9c3","setRecord(bytes32,address,address,uint64)":"cf408823","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setSubnodeRecord(bytes32,bytes32,address,address,uint64)":"5ef2c7f0","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"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\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setSubnodeRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":\"ENS\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol":{"ENSRegistry":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"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":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"recordExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setSubnodeRecord","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_200":{"entryPoint":null,"id":200,"parameterSlots":0,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b50336000808060001b815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061123d806100766000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 SHL DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x123D DUP1 PUSH2 0x76 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 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5B0FC9C3 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x5B0FC9C3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x5EF2C7F0 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCF408823 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xF79FE538 EQ PUSH2 0x251 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x178B8BF EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x2571BE3 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x6AB5923 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x14AB9038 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x16A25CBD EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x1896F70A EQ PUSH2 0x195 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP2 SWAP1 PUSH2 0xEF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xF9B 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 0xFB6 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0xFF6 JUMP JUMPDEST PUSH2 0x958 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x97A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0xA77 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1150 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x338 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x33D JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x43F JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x47F DUP2 DUP7 PUSH2 0xB94 JUMP JUMPDEST DUP6 DUP8 PUSH32 0xCE0457FE73731F824CC272376169235128C118B49D344817417C6D108D155E82 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F9 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x771 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7AA SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD 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 DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x907 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91A DUP5 DUP5 PUSH2 0xB94 JUMP JUMPDEST DUP4 PUSH32 0xD4735D920B0F87494915F556DD9B54C8F309026070CAEA5C737245152564D266 DUP5 PUSH1 0x40 MLOAD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x965 DUP7 DUP7 DUP7 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP PUSH2 0x972 DUP2 DUP5 DUP5 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 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 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA81 DUP5 DUP5 PUSH2 0x80C JUMP JUMPDEST PUSH2 0xA8C DUP5 DUP4 DUP4 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 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 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCE1 JUMPI DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD9A JUMPI DUP1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB7 DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD4 DUP2 PUSH2 0xDAE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP5 DUP3 DUP6 ADD PUSH2 0xDC5 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 0xE32 DUP3 PUSH2 0xE07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE42 DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE5D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP2 EQ PUSH2 0xE77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE89 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA7 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEB6 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xEC7 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xED8 DUP7 DUP3 DUP8 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xEEB DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF06 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP2 EQ PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF46 DUP2 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xF95 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFB0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF8C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCD JUMPI PUSH2 0xFCC PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFDB DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1011 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1020 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1031 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1042 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1053 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1064 DUP9 DUP3 DUP10 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1086 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP2 EQ PUSH2 0x1091 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10A3 DUP2 PUSH2 0x107D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C0 JUMPI PUSH2 0x10BF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10CE DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10DF DUP6 DUP3 DUP7 ADD PUSH2 0x1094 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1103 JUMPI PUSH2 0x1102 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1111 DUP8 DUP3 DUP9 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1122 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1133 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1144 DUP8 DUP3 DUP9 ADD PUSH2 0xF37 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 0x1167 JUMPI PUSH2 0x1166 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1186 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1199 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1190 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 PUSH2 0x11D0 DUP3 PUSH2 0xDA4 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E7 DUP3 DUP6 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x11F7 DUP3 DUP5 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"85:6342:1:-:0;;;618:69;;;;;;;;;;670:10;649:7;:12;657:3;649:12;;;;;;;;;;;;;:18;;;:31;;;;;;;;;;;;;;;;;;85:6342;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_setOwner_509":{"entryPoint":2964,"id":509,"parameterSlots":2,"returnSlots":0},"@_setResolverAndTTL_559":{"entryPoint":3052,"id":559,"parameterSlots":3,"returnSlots":0},"@isApprovedForAll_494":{"entryPoint":2706,"id":494,"parameterSlots":2,"returnSlots":1},"@owner_426":{"entryPoint":704,"id":426,"parameterSlots":1,"returnSlots":1},"@recordExists_476":{"entryPoint":2854,"id":476,"parameterSlots":1,"returnSlots":1},"@resolver_441":{"entryPoint":641,"id":441,"parameterSlots":1,"returnSlots":1},"@setApprovalForAll_394":{"entryPoint":2426,"id":394,"parameterSlots":2,"returnSlots":0},"@setOwner_278":{"entryPoint":2060,"id":278,"parameterSlots":2,"returnSlots":0},"@setRecord_225":{"entryPoint":2679,"id":225,"parameterSlots":4,"returnSlots":0},"@setResolver_343":{"entryPoint":1654,"id":343,"parameterSlots":2,"returnSlots":0},"@setSubnodeOwner_318":{"entryPoint":834,"id":318,"parameterSlots":3,"returnSlots":1},"@setSubnodeRecord_255":{"entryPoint":2392,"id":255,"parameterSlots":5,"returnSlots":0},"@setTTL_368":{"entryPoint":1221,"id":368,"parameterSlots":2,"returnSlots":0},"@ttl_456":{"entryPoint":1603,"id":456,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3706,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":4244,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3525,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":3895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":4432,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bool":{"entryPoint":4265,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32":{"entryPoint":3546,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":4022,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_addresst_addresst_uint64":{"entryPoint":4329,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes32t_bytes32t_address":{"entryPoint":3727,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64":{"entryPoint":4086,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bytes32t_uint64":{"entryPoint":3916,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3641,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4496,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":3810,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":4548,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":3980,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":4571,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3656,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4511,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":3825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":3995,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":3623,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4209,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":3492,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3591,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":3852,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":4538,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3487,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4221,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3502,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":3872,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8514:44","nodeType":"YulBlock","src":"0:8514:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:32:44","nodeType":"YulBlock","src":"379:32:44","statements":[{"nativeSrc":"389:16:44","nodeType":"YulAssignment","src":"389:16:44","value":{"name":"value","nativeSrc":"400:5:44","nodeType":"YulIdentifier","src":"400:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"334:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:77:44"},{"body":{"nativeSrc":"460:79:44","nodeType":"YulBlock","src":"460:79:44","statements":[{"body":{"nativeSrc":"517:16:44","nodeType":"YulBlock","src":"517:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:44","nodeType":"YulLiteral","src":"526:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:44","nodeType":"YulLiteral","src":"529:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:44","nodeType":"YulIdentifier","src":"519:6:44"},"nativeSrc":"519:12:44","nodeType":"YulFunctionCall","src":"519:12:44"},"nativeSrc":"519:12:44","nodeType":"YulExpressionStatement","src":"519:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:44","nodeType":"YulIdentifier","src":"483:5:44"},{"arguments":[{"name":"value","nativeSrc":"508:5:44","nodeType":"YulIdentifier","src":"508:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"490:17:44","nodeType":"YulIdentifier","src":"490:17:44"},"nativeSrc":"490:24:44","nodeType":"YulFunctionCall","src":"490:24:44"}],"functionName":{"name":"eq","nativeSrc":"480:2:44","nodeType":"YulIdentifier","src":"480:2:44"},"nativeSrc":"480:35:44","nodeType":"YulFunctionCall","src":"480:35:44"}],"functionName":{"name":"iszero","nativeSrc":"473:6:44","nodeType":"YulIdentifier","src":"473:6:44"},"nativeSrc":"473:43:44","nodeType":"YulFunctionCall","src":"473:43:44"},"nativeSrc":"470:63:44","nodeType":"YulIf","src":"470:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"417:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:44","nodeType":"YulTypedName","src":"453:5:44","type":""}],"src":"417:122:44"},{"body":{"nativeSrc":"597:87:44","nodeType":"YulBlock","src":"597:87:44","statements":[{"nativeSrc":"607:29:44","nodeType":"YulAssignment","src":"607:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:44","nodeType":"YulIdentifier","src":"629:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:44","nodeType":"YulIdentifier","src":"616:12:44"},"nativeSrc":"616:20:44","nodeType":"YulFunctionCall","src":"616:20:44"},"variableNames":[{"name":"value","nativeSrc":"607:5:44","nodeType":"YulIdentifier","src":"607:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:44","nodeType":"YulIdentifier","src":"672:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"645:26:44","nodeType":"YulIdentifier","src":"645:26:44"},"nativeSrc":"645:33:44","nodeType":"YulFunctionCall","src":"645:33:44"},"nativeSrc":"645:33:44","nodeType":"YulExpressionStatement","src":"645:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"545:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:44","nodeType":"YulTypedName","src":"575:6:44","type":""},{"name":"end","nativeSrc":"583:3:44","nodeType":"YulTypedName","src":"583:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:44","nodeType":"YulTypedName","src":"591:5:44","type":""}],"src":"545:139:44"},{"body":{"nativeSrc":"756:263:44","nodeType":"YulBlock","src":"756:263:44","statements":[{"body":{"nativeSrc":"802:83:44","nodeType":"YulBlock","src":"802:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:44","nodeType":"YulIdentifier","src":"804:77:44"},"nativeSrc":"804:79:44","nodeType":"YulFunctionCall","src":"804:79:44"},"nativeSrc":"804:79:44","nodeType":"YulExpressionStatement","src":"804:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:44","nodeType":"YulIdentifier","src":"777:7:44"},{"name":"headStart","nativeSrc":"786:9:44","nodeType":"YulIdentifier","src":"786:9:44"}],"functionName":{"name":"sub","nativeSrc":"773:3:44","nodeType":"YulIdentifier","src":"773:3:44"},"nativeSrc":"773:23:44","nodeType":"YulFunctionCall","src":"773:23:44"},{"kind":"number","nativeSrc":"798:2:44","nodeType":"YulLiteral","src":"798:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:44","nodeType":"YulIdentifier","src":"769:3:44"},"nativeSrc":"769:32:44","nodeType":"YulFunctionCall","src":"769:32:44"},"nativeSrc":"766:119:44","nodeType":"YulIf","src":"766:119:44"},{"nativeSrc":"895:117:44","nodeType":"YulBlock","src":"895:117:44","statements":[{"nativeSrc":"910:15:44","nodeType":"YulVariableDeclaration","src":"910:15:44","value":{"kind":"number","nativeSrc":"924:1:44","nodeType":"YulLiteral","src":"924:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:44","nodeType":"YulTypedName","src":"914:6:44","type":""}]},{"nativeSrc":"939:63:44","nodeType":"YulAssignment","src":"939:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:44","nodeType":"YulIdentifier","src":"974:9:44"},{"name":"offset","nativeSrc":"985:6:44","nodeType":"YulIdentifier","src":"985:6:44"}],"functionName":{"name":"add","nativeSrc":"970:3:44","nodeType":"YulIdentifier","src":"970:3:44"},"nativeSrc":"970:22:44","nodeType":"YulFunctionCall","src":"970:22:44"},{"name":"dataEnd","nativeSrc":"994:7:44","nodeType":"YulIdentifier","src":"994:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"949:20:44","nodeType":"YulIdentifier","src":"949:20:44"},"nativeSrc":"949:53:44","nodeType":"YulFunctionCall","src":"949:53:44"},"variableNames":[{"name":"value0","nativeSrc":"939:6:44","nodeType":"YulIdentifier","src":"939:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"690:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:44","nodeType":"YulTypedName","src":"726:9:44","type":""},{"name":"dataEnd","nativeSrc":"737:7:44","nodeType":"YulTypedName","src":"737:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:44","nodeType":"YulTypedName","src":"749:6:44","type":""}],"src":"690:329:44"},{"body":{"nativeSrc":"1070:81:44","nodeType":"YulBlock","src":"1070:81:44","statements":[{"nativeSrc":"1080:65:44","nodeType":"YulAssignment","src":"1080:65:44","value":{"arguments":[{"name":"value","nativeSrc":"1095:5:44","nodeType":"YulIdentifier","src":"1095:5:44"},{"kind":"number","nativeSrc":"1102:42:44","nodeType":"YulLiteral","src":"1102:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1091:3:44","nodeType":"YulIdentifier","src":"1091:3:44"},"nativeSrc":"1091:54:44","nodeType":"YulFunctionCall","src":"1091:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1080:7:44","nodeType":"YulIdentifier","src":"1080:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1025:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1052:5:44","nodeType":"YulTypedName","src":"1052:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1062:7:44","nodeType":"YulTypedName","src":"1062:7:44","type":""}],"src":"1025:126:44"},{"body":{"nativeSrc":"1202:51:44","nodeType":"YulBlock","src":"1202:51:44","statements":[{"nativeSrc":"1212:35:44","nodeType":"YulAssignment","src":"1212:35:44","value":{"arguments":[{"name":"value","nativeSrc":"1241:5:44","nodeType":"YulIdentifier","src":"1241:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1223:17:44","nodeType":"YulIdentifier","src":"1223:17:44"},"nativeSrc":"1223:24:44","nodeType":"YulFunctionCall","src":"1223:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1212:7:44","nodeType":"YulIdentifier","src":"1212:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"1157:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1184:5:44","nodeType":"YulTypedName","src":"1184:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1194:7:44","nodeType":"YulTypedName","src":"1194:7:44","type":""}],"src":"1157:96:44"},{"body":{"nativeSrc":"1324:53:44","nodeType":"YulBlock","src":"1324:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1341:3:44","nodeType":"YulIdentifier","src":"1341:3:44"},{"arguments":[{"name":"value","nativeSrc":"1364:5:44","nodeType":"YulIdentifier","src":"1364:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1346:17:44","nodeType":"YulIdentifier","src":"1346:17:44"},"nativeSrc":"1346:24:44","nodeType":"YulFunctionCall","src":"1346:24:44"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:44","nodeType":"YulIdentifier","src":"1334:6:44"},"nativeSrc":"1334:37:44","nodeType":"YulFunctionCall","src":"1334:37:44"},"nativeSrc":"1334:37:44","nodeType":"YulExpressionStatement","src":"1334:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1259:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1312:5:44","nodeType":"YulTypedName","src":"1312:5:44","type":""},{"name":"pos","nativeSrc":"1319:3:44","nodeType":"YulTypedName","src":"1319:3:44","type":""}],"src":"1259:118:44"},{"body":{"nativeSrc":"1481:124:44","nodeType":"YulBlock","src":"1481:124:44","statements":[{"nativeSrc":"1491:26:44","nodeType":"YulAssignment","src":"1491:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1503:9:44","nodeType":"YulIdentifier","src":"1503:9:44"},{"kind":"number","nativeSrc":"1514:2:44","nodeType":"YulLiteral","src":"1514:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1499:3:44","nodeType":"YulIdentifier","src":"1499:3:44"},"nativeSrc":"1499:18:44","nodeType":"YulFunctionCall","src":"1499:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1491:4:44","nodeType":"YulIdentifier","src":"1491:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1571:6:44","nodeType":"YulIdentifier","src":"1571:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1584:9:44","nodeType":"YulIdentifier","src":"1584:9:44"},{"kind":"number","nativeSrc":"1595:1:44","nodeType":"YulLiteral","src":"1595:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1580:3:44","nodeType":"YulIdentifier","src":"1580:3:44"},"nativeSrc":"1580:17:44","nodeType":"YulFunctionCall","src":"1580:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1527:43:44","nodeType":"YulIdentifier","src":"1527:43:44"},"nativeSrc":"1527:71:44","nodeType":"YulFunctionCall","src":"1527:71:44"},"nativeSrc":"1527:71:44","nodeType":"YulExpressionStatement","src":"1527:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1383:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1453:9:44","nodeType":"YulTypedName","src":"1453:9:44","type":""},{"name":"value0","nativeSrc":"1465:6:44","nodeType":"YulTypedName","src":"1465:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1476:4:44","nodeType":"YulTypedName","src":"1476:4:44","type":""}],"src":"1383:222:44"},{"body":{"nativeSrc":"1654:79:44","nodeType":"YulBlock","src":"1654:79:44","statements":[{"body":{"nativeSrc":"1711:16:44","nodeType":"YulBlock","src":"1711:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1720:1:44","nodeType":"YulLiteral","src":"1720:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1723:1:44","nodeType":"YulLiteral","src":"1723:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1713:6:44","nodeType":"YulIdentifier","src":"1713:6:44"},"nativeSrc":"1713:12:44","nodeType":"YulFunctionCall","src":"1713:12:44"},"nativeSrc":"1713:12:44","nodeType":"YulExpressionStatement","src":"1713:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1677:5:44","nodeType":"YulIdentifier","src":"1677:5:44"},{"arguments":[{"name":"value","nativeSrc":"1702:5:44","nodeType":"YulIdentifier","src":"1702:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1684:17:44","nodeType":"YulIdentifier","src":"1684:17:44"},"nativeSrc":"1684:24:44","nodeType":"YulFunctionCall","src":"1684:24:44"}],"functionName":{"name":"eq","nativeSrc":"1674:2:44","nodeType":"YulIdentifier","src":"1674:2:44"},"nativeSrc":"1674:35:44","nodeType":"YulFunctionCall","src":"1674:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1667:6:44","nodeType":"YulIdentifier","src":"1667:6:44"},"nativeSrc":"1667:43:44","nodeType":"YulFunctionCall","src":"1667:43:44"},"nativeSrc":"1664:63:44","nodeType":"YulIf","src":"1664:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"1611:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1647:5:44","nodeType":"YulTypedName","src":"1647:5:44","type":""}],"src":"1611:122:44"},{"body":{"nativeSrc":"1791:87:44","nodeType":"YulBlock","src":"1791:87:44","statements":[{"nativeSrc":"1801:29:44","nodeType":"YulAssignment","src":"1801:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1823:6:44","nodeType":"YulIdentifier","src":"1823:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1810:12:44","nodeType":"YulIdentifier","src":"1810:12:44"},"nativeSrc":"1810:20:44","nodeType":"YulFunctionCall","src":"1810:20:44"},"variableNames":[{"name":"value","nativeSrc":"1801:5:44","nodeType":"YulIdentifier","src":"1801:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1866:5:44","nodeType":"YulIdentifier","src":"1866:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1839:26:44","nodeType":"YulIdentifier","src":"1839:26:44"},"nativeSrc":"1839:33:44","nodeType":"YulFunctionCall","src":"1839:33:44"},"nativeSrc":"1839:33:44","nodeType":"YulExpressionStatement","src":"1839:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"1739:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1769:6:44","nodeType":"YulTypedName","src":"1769:6:44","type":""},{"name":"end","nativeSrc":"1777:3:44","nodeType":"YulTypedName","src":"1777:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1785:5:44","nodeType":"YulTypedName","src":"1785:5:44","type":""}],"src":"1739:139:44"},{"body":{"nativeSrc":"1984:519:44","nodeType":"YulBlock","src":"1984:519:44","statements":[{"body":{"nativeSrc":"2030:83:44","nodeType":"YulBlock","src":"2030:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2032:77:44","nodeType":"YulIdentifier","src":"2032:77:44"},"nativeSrc":"2032:79:44","nodeType":"YulFunctionCall","src":"2032:79:44"},"nativeSrc":"2032:79:44","nodeType":"YulExpressionStatement","src":"2032:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2005:7:44","nodeType":"YulIdentifier","src":"2005:7:44"},{"name":"headStart","nativeSrc":"2014:9:44","nodeType":"YulIdentifier","src":"2014:9:44"}],"functionName":{"name":"sub","nativeSrc":"2001:3:44","nodeType":"YulIdentifier","src":"2001:3:44"},"nativeSrc":"2001:23:44","nodeType":"YulFunctionCall","src":"2001:23:44"},{"kind":"number","nativeSrc":"2026:2:44","nodeType":"YulLiteral","src":"2026:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1997:3:44","nodeType":"YulIdentifier","src":"1997:3:44"},"nativeSrc":"1997:32:44","nodeType":"YulFunctionCall","src":"1997:32:44"},"nativeSrc":"1994:119:44","nodeType":"YulIf","src":"1994:119:44"},{"nativeSrc":"2123:117:44","nodeType":"YulBlock","src":"2123:117:44","statements":[{"nativeSrc":"2138:15:44","nodeType":"YulVariableDeclaration","src":"2138:15:44","value":{"kind":"number","nativeSrc":"2152:1:44","nodeType":"YulLiteral","src":"2152:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2142:6:44","nodeType":"YulTypedName","src":"2142:6:44","type":""}]},{"nativeSrc":"2167:63:44","nodeType":"YulAssignment","src":"2167:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2202:9:44","nodeType":"YulIdentifier","src":"2202:9:44"},{"name":"offset","nativeSrc":"2213:6:44","nodeType":"YulIdentifier","src":"2213:6:44"}],"functionName":{"name":"add","nativeSrc":"2198:3:44","nodeType":"YulIdentifier","src":"2198:3:44"},"nativeSrc":"2198:22:44","nodeType":"YulFunctionCall","src":"2198:22:44"},{"name":"dataEnd","nativeSrc":"2222:7:44","nodeType":"YulIdentifier","src":"2222:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2177:20:44","nodeType":"YulIdentifier","src":"2177:20:44"},"nativeSrc":"2177:53:44","nodeType":"YulFunctionCall","src":"2177:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2167:6:44","nodeType":"YulIdentifier","src":"2167:6:44"}]}]},{"nativeSrc":"2250:118:44","nodeType":"YulBlock","src":"2250:118:44","statements":[{"nativeSrc":"2265:16:44","nodeType":"YulVariableDeclaration","src":"2265:16:44","value":{"kind":"number","nativeSrc":"2279:2:44","nodeType":"YulLiteral","src":"2279:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2269:6:44","nodeType":"YulTypedName","src":"2269:6:44","type":""}]},{"nativeSrc":"2295:63:44","nodeType":"YulAssignment","src":"2295:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2330:9:44","nodeType":"YulIdentifier","src":"2330:9:44"},{"name":"offset","nativeSrc":"2341:6:44","nodeType":"YulIdentifier","src":"2341:6:44"}],"functionName":{"name":"add","nativeSrc":"2326:3:44","nodeType":"YulIdentifier","src":"2326:3:44"},"nativeSrc":"2326:22:44","nodeType":"YulFunctionCall","src":"2326:22:44"},{"name":"dataEnd","nativeSrc":"2350:7:44","nodeType":"YulIdentifier","src":"2350:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2305:20:44","nodeType":"YulIdentifier","src":"2305:20:44"},"nativeSrc":"2305:53:44","nodeType":"YulFunctionCall","src":"2305:53:44"},"variableNames":[{"name":"value1","nativeSrc":"2295:6:44","nodeType":"YulIdentifier","src":"2295:6:44"}]}]},{"nativeSrc":"2378:118:44","nodeType":"YulBlock","src":"2378:118:44","statements":[{"nativeSrc":"2393:16:44","nodeType":"YulVariableDeclaration","src":"2393:16:44","value":{"kind":"number","nativeSrc":"2407:2:44","nodeType":"YulLiteral","src":"2407:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2397:6:44","nodeType":"YulTypedName","src":"2397:6:44","type":""}]},{"nativeSrc":"2423:63:44","nodeType":"YulAssignment","src":"2423:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2458:9:44","nodeType":"YulIdentifier","src":"2458:9:44"},{"name":"offset","nativeSrc":"2469:6:44","nodeType":"YulIdentifier","src":"2469:6:44"}],"functionName":{"name":"add","nativeSrc":"2454:3:44","nodeType":"YulIdentifier","src":"2454:3:44"},"nativeSrc":"2454:22:44","nodeType":"YulFunctionCall","src":"2454:22:44"},{"name":"dataEnd","nativeSrc":"2478:7:44","nodeType":"YulIdentifier","src":"2478:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2433:20:44","nodeType":"YulIdentifier","src":"2433:20:44"},"nativeSrc":"2433:53:44","nodeType":"YulFunctionCall","src":"2433:53:44"},"variableNames":[{"name":"value2","nativeSrc":"2423:6:44","nodeType":"YulIdentifier","src":"2423:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nativeSrc":"1884:619:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1938:9:44","nodeType":"YulTypedName","src":"1938:9:44","type":""},{"name":"dataEnd","nativeSrc":"1949:7:44","nodeType":"YulTypedName","src":"1949:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1961:6:44","nodeType":"YulTypedName","src":"1961:6:44","type":""},{"name":"value1","nativeSrc":"1969:6:44","nodeType":"YulTypedName","src":"1969:6:44","type":""},{"name":"value2","nativeSrc":"1977:6:44","nodeType":"YulTypedName","src":"1977:6:44","type":""}],"src":"1884:619:44"},{"body":{"nativeSrc":"2574:53:44","nodeType":"YulBlock","src":"2574:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2591:3:44","nodeType":"YulIdentifier","src":"2591:3:44"},{"arguments":[{"name":"value","nativeSrc":"2614:5:44","nodeType":"YulIdentifier","src":"2614:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2596:17:44","nodeType":"YulIdentifier","src":"2596:17:44"},"nativeSrc":"2596:24:44","nodeType":"YulFunctionCall","src":"2596:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2584:6:44","nodeType":"YulIdentifier","src":"2584:6:44"},"nativeSrc":"2584:37:44","nodeType":"YulFunctionCall","src":"2584:37:44"},"nativeSrc":"2584:37:44","nodeType":"YulExpressionStatement","src":"2584:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2509:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2562:5:44","nodeType":"YulTypedName","src":"2562:5:44","type":""},{"name":"pos","nativeSrc":"2569:3:44","nodeType":"YulTypedName","src":"2569:3:44","type":""}],"src":"2509:118:44"},{"body":{"nativeSrc":"2731:124:44","nodeType":"YulBlock","src":"2731:124:44","statements":[{"nativeSrc":"2741:26:44","nodeType":"YulAssignment","src":"2741:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2753:9:44","nodeType":"YulIdentifier","src":"2753:9:44"},{"kind":"number","nativeSrc":"2764:2:44","nodeType":"YulLiteral","src":"2764:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2749:3:44","nodeType":"YulIdentifier","src":"2749:3:44"},"nativeSrc":"2749:18:44","nodeType":"YulFunctionCall","src":"2749:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2741:4:44","nodeType":"YulIdentifier","src":"2741:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2821:6:44","nodeType":"YulIdentifier","src":"2821:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2834:9:44","nodeType":"YulIdentifier","src":"2834:9:44"},{"kind":"number","nativeSrc":"2845:1:44","nodeType":"YulLiteral","src":"2845:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2830:3:44","nodeType":"YulIdentifier","src":"2830:3:44"},"nativeSrc":"2830:17:44","nodeType":"YulFunctionCall","src":"2830:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2777:43:44","nodeType":"YulIdentifier","src":"2777:43:44"},"nativeSrc":"2777:71:44","nodeType":"YulFunctionCall","src":"2777:71:44"},"nativeSrc":"2777:71:44","nodeType":"YulExpressionStatement","src":"2777:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2633:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2703:9:44","nodeType":"YulTypedName","src":"2703:9:44","type":""},{"name":"value0","nativeSrc":"2715:6:44","nodeType":"YulTypedName","src":"2715:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2726:4:44","nodeType":"YulTypedName","src":"2726:4:44","type":""}],"src":"2633:222:44"},{"body":{"nativeSrc":"2905:57:44","nodeType":"YulBlock","src":"2905:57:44","statements":[{"nativeSrc":"2915:41:44","nodeType":"YulAssignment","src":"2915:41:44","value":{"arguments":[{"name":"value","nativeSrc":"2930:5:44","nodeType":"YulIdentifier","src":"2930:5:44"},{"kind":"number","nativeSrc":"2937:18:44","nodeType":"YulLiteral","src":"2937:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2926:3:44","nodeType":"YulIdentifier","src":"2926:3:44"},"nativeSrc":"2926:30:44","nodeType":"YulFunctionCall","src":"2926:30:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2915:7:44","nodeType":"YulIdentifier","src":"2915:7:44"}]}]},"name":"cleanup_t_uint64","nativeSrc":"2861:101:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2887:5:44","nodeType":"YulTypedName","src":"2887:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2897:7:44","nodeType":"YulTypedName","src":"2897:7:44","type":""}],"src":"2861:101:44"},{"body":{"nativeSrc":"3010:78:44","nodeType":"YulBlock","src":"3010:78:44","statements":[{"body":{"nativeSrc":"3066:16:44","nodeType":"YulBlock","src":"3066:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3075:1:44","nodeType":"YulLiteral","src":"3075:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3078:1:44","nodeType":"YulLiteral","src":"3078:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3068:6:44","nodeType":"YulIdentifier","src":"3068:6:44"},"nativeSrc":"3068:12:44","nodeType":"YulFunctionCall","src":"3068:12:44"},"nativeSrc":"3068:12:44","nodeType":"YulExpressionStatement","src":"3068:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3033:5:44","nodeType":"YulIdentifier","src":"3033:5:44"},{"arguments":[{"name":"value","nativeSrc":"3057:5:44","nodeType":"YulIdentifier","src":"3057:5:44"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"3040:16:44","nodeType":"YulIdentifier","src":"3040:16:44"},"nativeSrc":"3040:23:44","nodeType":"YulFunctionCall","src":"3040:23:44"}],"functionName":{"name":"eq","nativeSrc":"3030:2:44","nodeType":"YulIdentifier","src":"3030:2:44"},"nativeSrc":"3030:34:44","nodeType":"YulFunctionCall","src":"3030:34:44"}],"functionName":{"name":"iszero","nativeSrc":"3023:6:44","nodeType":"YulIdentifier","src":"3023:6:44"},"nativeSrc":"3023:42:44","nodeType":"YulFunctionCall","src":"3023:42:44"},"nativeSrc":"3020:62:44","nodeType":"YulIf","src":"3020:62:44"}]},"name":"validator_revert_t_uint64","nativeSrc":"2968:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3003:5:44","nodeType":"YulTypedName","src":"3003:5:44","type":""}],"src":"2968:120:44"},{"body":{"nativeSrc":"3145:86:44","nodeType":"YulBlock","src":"3145:86:44","statements":[{"nativeSrc":"3155:29:44","nodeType":"YulAssignment","src":"3155:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3177:6:44","nodeType":"YulIdentifier","src":"3177:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3164:12:44","nodeType":"YulIdentifier","src":"3164:12:44"},"nativeSrc":"3164:20:44","nodeType":"YulFunctionCall","src":"3164:20:44"},"variableNames":[{"name":"value","nativeSrc":"3155:5:44","nodeType":"YulIdentifier","src":"3155:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3219:5:44","nodeType":"YulIdentifier","src":"3219:5:44"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"3193:25:44","nodeType":"YulIdentifier","src":"3193:25:44"},"nativeSrc":"3193:32:44","nodeType":"YulFunctionCall","src":"3193:32:44"},"nativeSrc":"3193:32:44","nodeType":"YulExpressionStatement","src":"3193:32:44"}]},"name":"abi_decode_t_uint64","nativeSrc":"3094:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3123:6:44","nodeType":"YulTypedName","src":"3123:6:44","type":""},{"name":"end","nativeSrc":"3131:3:44","nodeType":"YulTypedName","src":"3131:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3139:5:44","nodeType":"YulTypedName","src":"3139:5:44","type":""}],"src":"3094:137:44"},{"body":{"nativeSrc":"3319:390:44","nodeType":"YulBlock","src":"3319:390:44","statements":[{"body":{"nativeSrc":"3365:83:44","nodeType":"YulBlock","src":"3365:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3367:77:44","nodeType":"YulIdentifier","src":"3367:77:44"},"nativeSrc":"3367:79:44","nodeType":"YulFunctionCall","src":"3367:79:44"},"nativeSrc":"3367:79:44","nodeType":"YulExpressionStatement","src":"3367:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3340:7:44","nodeType":"YulIdentifier","src":"3340:7:44"},{"name":"headStart","nativeSrc":"3349:9:44","nodeType":"YulIdentifier","src":"3349:9:44"}],"functionName":{"name":"sub","nativeSrc":"3336:3:44","nodeType":"YulIdentifier","src":"3336:3:44"},"nativeSrc":"3336:23:44","nodeType":"YulFunctionCall","src":"3336:23:44"},{"kind":"number","nativeSrc":"3361:2:44","nodeType":"YulLiteral","src":"3361:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3332:3:44","nodeType":"YulIdentifier","src":"3332:3:44"},"nativeSrc":"3332:32:44","nodeType":"YulFunctionCall","src":"3332:32:44"},"nativeSrc":"3329:119:44","nodeType":"YulIf","src":"3329:119:44"},{"nativeSrc":"3458:117:44","nodeType":"YulBlock","src":"3458:117:44","statements":[{"nativeSrc":"3473:15:44","nodeType":"YulVariableDeclaration","src":"3473:15:44","value":{"kind":"number","nativeSrc":"3487:1:44","nodeType":"YulLiteral","src":"3487:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3477:6:44","nodeType":"YulTypedName","src":"3477:6:44","type":""}]},{"nativeSrc":"3502:63:44","nodeType":"YulAssignment","src":"3502:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3537:9:44","nodeType":"YulIdentifier","src":"3537:9:44"},{"name":"offset","nativeSrc":"3548:6:44","nodeType":"YulIdentifier","src":"3548:6:44"}],"functionName":{"name":"add","nativeSrc":"3533:3:44","nodeType":"YulIdentifier","src":"3533:3:44"},"nativeSrc":"3533:22:44","nodeType":"YulFunctionCall","src":"3533:22:44"},{"name":"dataEnd","nativeSrc":"3557:7:44","nodeType":"YulIdentifier","src":"3557:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"3512:20:44","nodeType":"YulIdentifier","src":"3512:20:44"},"nativeSrc":"3512:53:44","nodeType":"YulFunctionCall","src":"3512:53:44"},"variableNames":[{"name":"value0","nativeSrc":"3502:6:44","nodeType":"YulIdentifier","src":"3502:6:44"}]}]},{"nativeSrc":"3585:117:44","nodeType":"YulBlock","src":"3585:117:44","statements":[{"nativeSrc":"3600:16:44","nodeType":"YulVariableDeclaration","src":"3600:16:44","value":{"kind":"number","nativeSrc":"3614:2:44","nodeType":"YulLiteral","src":"3614:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3604:6:44","nodeType":"YulTypedName","src":"3604:6:44","type":""}]},{"nativeSrc":"3630:62:44","nodeType":"YulAssignment","src":"3630:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3664:9:44","nodeType":"YulIdentifier","src":"3664:9:44"},{"name":"offset","nativeSrc":"3675:6:44","nodeType":"YulIdentifier","src":"3675:6:44"}],"functionName":{"name":"add","nativeSrc":"3660:3:44","nodeType":"YulIdentifier","src":"3660:3:44"},"nativeSrc":"3660:22:44","nodeType":"YulFunctionCall","src":"3660:22:44"},{"name":"dataEnd","nativeSrc":"3684:7:44","nodeType":"YulIdentifier","src":"3684:7:44"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"3640:19:44","nodeType":"YulIdentifier","src":"3640:19:44"},"nativeSrc":"3640:52:44","nodeType":"YulFunctionCall","src":"3640:52:44"},"variableNames":[{"name":"value1","nativeSrc":"3630:6:44","nodeType":"YulIdentifier","src":"3630:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_uint64","nativeSrc":"3237:472:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3281:9:44","nodeType":"YulTypedName","src":"3281:9:44","type":""},{"name":"dataEnd","nativeSrc":"3292:7:44","nodeType":"YulTypedName","src":"3292:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3304:6:44","nodeType":"YulTypedName","src":"3304:6:44","type":""},{"name":"value1","nativeSrc":"3312:6:44","nodeType":"YulTypedName","src":"3312:6:44","type":""}],"src":"3237:472:44"},{"body":{"nativeSrc":"3778:52:44","nodeType":"YulBlock","src":"3778:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3795:3:44","nodeType":"YulIdentifier","src":"3795:3:44"},{"arguments":[{"name":"value","nativeSrc":"3817:5:44","nodeType":"YulIdentifier","src":"3817:5:44"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"3800:16:44","nodeType":"YulIdentifier","src":"3800:16:44"},"nativeSrc":"3800:23:44","nodeType":"YulFunctionCall","src":"3800:23:44"}],"functionName":{"name":"mstore","nativeSrc":"3788:6:44","nodeType":"YulIdentifier","src":"3788:6:44"},"nativeSrc":"3788:36:44","nodeType":"YulFunctionCall","src":"3788:36:44"},"nativeSrc":"3788:36:44","nodeType":"YulExpressionStatement","src":"3788:36:44"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"3715:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3766:5:44","nodeType":"YulTypedName","src":"3766:5:44","type":""},{"name":"pos","nativeSrc":"3773:3:44","nodeType":"YulTypedName","src":"3773:3:44","type":""}],"src":"3715:115:44"},{"body":{"nativeSrc":"3932:122:44","nodeType":"YulBlock","src":"3932:122:44","statements":[{"nativeSrc":"3942:26:44","nodeType":"YulAssignment","src":"3942:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"3954:9:44","nodeType":"YulIdentifier","src":"3954:9:44"},{"kind":"number","nativeSrc":"3965:2:44","nodeType":"YulLiteral","src":"3965:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3950:3:44","nodeType":"YulIdentifier","src":"3950:3:44"},"nativeSrc":"3950:18:44","nodeType":"YulFunctionCall","src":"3950:18:44"},"variableNames":[{"name":"tail","nativeSrc":"3942:4:44","nodeType":"YulIdentifier","src":"3942:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4020:6:44","nodeType":"YulIdentifier","src":"4020:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4033:9:44","nodeType":"YulIdentifier","src":"4033:9:44"},{"kind":"number","nativeSrc":"4044:1:44","nodeType":"YulLiteral","src":"4044:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4029:3:44","nodeType":"YulIdentifier","src":"4029:3:44"},"nativeSrc":"4029:17:44","nodeType":"YulFunctionCall","src":"4029:17:44"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"3978:41:44","nodeType":"YulIdentifier","src":"3978:41:44"},"nativeSrc":"3978:69:44","nodeType":"YulFunctionCall","src":"3978:69:44"},"nativeSrc":"3978:69:44","nodeType":"YulExpressionStatement","src":"3978:69:44"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"3836:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3904:9:44","nodeType":"YulTypedName","src":"3904:9:44","type":""},{"name":"value0","nativeSrc":"3916:6:44","nodeType":"YulTypedName","src":"3916:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3927:4:44","nodeType":"YulTypedName","src":"3927:4:44","type":""}],"src":"3836:218:44"},{"body":{"nativeSrc":"4143:391:44","nodeType":"YulBlock","src":"4143:391:44","statements":[{"body":{"nativeSrc":"4189:83:44","nodeType":"YulBlock","src":"4189:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4191:77:44","nodeType":"YulIdentifier","src":"4191:77:44"},"nativeSrc":"4191:79:44","nodeType":"YulFunctionCall","src":"4191:79:44"},"nativeSrc":"4191:79:44","nodeType":"YulExpressionStatement","src":"4191:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4164:7:44","nodeType":"YulIdentifier","src":"4164:7:44"},{"name":"headStart","nativeSrc":"4173:9:44","nodeType":"YulIdentifier","src":"4173:9:44"}],"functionName":{"name":"sub","nativeSrc":"4160:3:44","nodeType":"YulIdentifier","src":"4160:3:44"},"nativeSrc":"4160:23:44","nodeType":"YulFunctionCall","src":"4160:23:44"},{"kind":"number","nativeSrc":"4185:2:44","nodeType":"YulLiteral","src":"4185:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4156:3:44","nodeType":"YulIdentifier","src":"4156:3:44"},"nativeSrc":"4156:32:44","nodeType":"YulFunctionCall","src":"4156:32:44"},"nativeSrc":"4153:119:44","nodeType":"YulIf","src":"4153:119:44"},{"nativeSrc":"4282:117:44","nodeType":"YulBlock","src":"4282:117:44","statements":[{"nativeSrc":"4297:15:44","nodeType":"YulVariableDeclaration","src":"4297:15:44","value":{"kind":"number","nativeSrc":"4311:1:44","nodeType":"YulLiteral","src":"4311:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4301:6:44","nodeType":"YulTypedName","src":"4301:6:44","type":""}]},{"nativeSrc":"4326:63:44","nodeType":"YulAssignment","src":"4326:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4361:9:44","nodeType":"YulIdentifier","src":"4361:9:44"},{"name":"offset","nativeSrc":"4372:6:44","nodeType":"YulIdentifier","src":"4372:6:44"}],"functionName":{"name":"add","nativeSrc":"4357:3:44","nodeType":"YulIdentifier","src":"4357:3:44"},"nativeSrc":"4357:22:44","nodeType":"YulFunctionCall","src":"4357:22:44"},{"name":"dataEnd","nativeSrc":"4381:7:44","nodeType":"YulIdentifier","src":"4381:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4336:20:44","nodeType":"YulIdentifier","src":"4336:20:44"},"nativeSrc":"4336:53:44","nodeType":"YulFunctionCall","src":"4336:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4326:6:44","nodeType":"YulIdentifier","src":"4326:6:44"}]}]},{"nativeSrc":"4409:118:44","nodeType":"YulBlock","src":"4409:118:44","statements":[{"nativeSrc":"4424:16:44","nodeType":"YulVariableDeclaration","src":"4424:16:44","value":{"kind":"number","nativeSrc":"4438:2:44","nodeType":"YulLiteral","src":"4438:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4428:6:44","nodeType":"YulTypedName","src":"4428:6:44","type":""}]},{"nativeSrc":"4454:63:44","nodeType":"YulAssignment","src":"4454:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4489:9:44","nodeType":"YulIdentifier","src":"4489:9:44"},{"name":"offset","nativeSrc":"4500:6:44","nodeType":"YulIdentifier","src":"4500:6:44"}],"functionName":{"name":"add","nativeSrc":"4485:3:44","nodeType":"YulIdentifier","src":"4485:3:44"},"nativeSrc":"4485:22:44","nodeType":"YulFunctionCall","src":"4485:22:44"},{"name":"dataEnd","nativeSrc":"4509:7:44","nodeType":"YulIdentifier","src":"4509:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4464:20:44","nodeType":"YulIdentifier","src":"4464:20:44"},"nativeSrc":"4464:53:44","nodeType":"YulFunctionCall","src":"4464:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4454:6:44","nodeType":"YulIdentifier","src":"4454:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"4060:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4105:9:44","nodeType":"YulTypedName","src":"4105:9:44","type":""},{"name":"dataEnd","nativeSrc":"4116:7:44","nodeType":"YulTypedName","src":"4116:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4128:6:44","nodeType":"YulTypedName","src":"4128:6:44","type":""},{"name":"value1","nativeSrc":"4136:6:44","nodeType":"YulTypedName","src":"4136:6:44","type":""}],"src":"4060:474:44"},{"body":{"nativeSrc":"4673:776:44","nodeType":"YulBlock","src":"4673:776:44","statements":[{"body":{"nativeSrc":"4720:83:44","nodeType":"YulBlock","src":"4720:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4722:77:44","nodeType":"YulIdentifier","src":"4722:77:44"},"nativeSrc":"4722:79:44","nodeType":"YulFunctionCall","src":"4722:79:44"},"nativeSrc":"4722:79:44","nodeType":"YulExpressionStatement","src":"4722:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4694:7:44","nodeType":"YulIdentifier","src":"4694:7:44"},{"name":"headStart","nativeSrc":"4703:9:44","nodeType":"YulIdentifier","src":"4703:9:44"}],"functionName":{"name":"sub","nativeSrc":"4690:3:44","nodeType":"YulIdentifier","src":"4690:3:44"},"nativeSrc":"4690:23:44","nodeType":"YulFunctionCall","src":"4690:23:44"},{"kind":"number","nativeSrc":"4715:3:44","nodeType":"YulLiteral","src":"4715:3:44","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"4686:3:44","nodeType":"YulIdentifier","src":"4686:3:44"},"nativeSrc":"4686:33:44","nodeType":"YulFunctionCall","src":"4686:33:44"},"nativeSrc":"4683:120:44","nodeType":"YulIf","src":"4683:120:44"},{"nativeSrc":"4813:117:44","nodeType":"YulBlock","src":"4813:117:44","statements":[{"nativeSrc":"4828:15:44","nodeType":"YulVariableDeclaration","src":"4828:15:44","value":{"kind":"number","nativeSrc":"4842:1:44","nodeType":"YulLiteral","src":"4842:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4832:6:44","nodeType":"YulTypedName","src":"4832:6:44","type":""}]},{"nativeSrc":"4857:63:44","nodeType":"YulAssignment","src":"4857:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4892:9:44","nodeType":"YulIdentifier","src":"4892:9:44"},{"name":"offset","nativeSrc":"4903:6:44","nodeType":"YulIdentifier","src":"4903:6:44"}],"functionName":{"name":"add","nativeSrc":"4888:3:44","nodeType":"YulIdentifier","src":"4888:3:44"},"nativeSrc":"4888:22:44","nodeType":"YulFunctionCall","src":"4888:22:44"},{"name":"dataEnd","nativeSrc":"4912:7:44","nodeType":"YulIdentifier","src":"4912:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4867:20:44","nodeType":"YulIdentifier","src":"4867:20:44"},"nativeSrc":"4867:53:44","nodeType":"YulFunctionCall","src":"4867:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4857:6:44","nodeType":"YulIdentifier","src":"4857:6:44"}]}]},{"nativeSrc":"4940:118:44","nodeType":"YulBlock","src":"4940:118:44","statements":[{"nativeSrc":"4955:16:44","nodeType":"YulVariableDeclaration","src":"4955:16:44","value":{"kind":"number","nativeSrc":"4969:2:44","nodeType":"YulLiteral","src":"4969:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4959:6:44","nodeType":"YulTypedName","src":"4959:6:44","type":""}]},{"nativeSrc":"4985:63:44","nodeType":"YulAssignment","src":"4985:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5020:9:44","nodeType":"YulIdentifier","src":"5020:9:44"},{"name":"offset","nativeSrc":"5031:6:44","nodeType":"YulIdentifier","src":"5031:6:44"}],"functionName":{"name":"add","nativeSrc":"5016:3:44","nodeType":"YulIdentifier","src":"5016:3:44"},"nativeSrc":"5016:22:44","nodeType":"YulFunctionCall","src":"5016:22:44"},{"name":"dataEnd","nativeSrc":"5040:7:44","nodeType":"YulIdentifier","src":"5040:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4995:20:44","nodeType":"YulIdentifier","src":"4995:20:44"},"nativeSrc":"4995:53:44","nodeType":"YulFunctionCall","src":"4995:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4985:6:44","nodeType":"YulIdentifier","src":"4985:6:44"}]}]},{"nativeSrc":"5068:118:44","nodeType":"YulBlock","src":"5068:118:44","statements":[{"nativeSrc":"5083:16:44","nodeType":"YulVariableDeclaration","src":"5083:16:44","value":{"kind":"number","nativeSrc":"5097:2:44","nodeType":"YulLiteral","src":"5097:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5087:6:44","nodeType":"YulTypedName","src":"5087:6:44","type":""}]},{"nativeSrc":"5113:63:44","nodeType":"YulAssignment","src":"5113:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5148:9:44","nodeType":"YulIdentifier","src":"5148:9:44"},{"name":"offset","nativeSrc":"5159:6:44","nodeType":"YulIdentifier","src":"5159:6:44"}],"functionName":{"name":"add","nativeSrc":"5144:3:44","nodeType":"YulIdentifier","src":"5144:3:44"},"nativeSrc":"5144:22:44","nodeType":"YulFunctionCall","src":"5144:22:44"},{"name":"dataEnd","nativeSrc":"5168:7:44","nodeType":"YulIdentifier","src":"5168:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5123:20:44","nodeType":"YulIdentifier","src":"5123:20:44"},"nativeSrc":"5123:53:44","nodeType":"YulFunctionCall","src":"5123:53:44"},"variableNames":[{"name":"value2","nativeSrc":"5113:6:44","nodeType":"YulIdentifier","src":"5113:6:44"}]}]},{"nativeSrc":"5196:118:44","nodeType":"YulBlock","src":"5196:118:44","statements":[{"nativeSrc":"5211:16:44","nodeType":"YulVariableDeclaration","src":"5211:16:44","value":{"kind":"number","nativeSrc":"5225:2:44","nodeType":"YulLiteral","src":"5225:2:44","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"5215:6:44","nodeType":"YulTypedName","src":"5215:6:44","type":""}]},{"nativeSrc":"5241:63:44","nodeType":"YulAssignment","src":"5241:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5276:9:44","nodeType":"YulIdentifier","src":"5276:9:44"},{"name":"offset","nativeSrc":"5287:6:44","nodeType":"YulIdentifier","src":"5287:6:44"}],"functionName":{"name":"add","nativeSrc":"5272:3:44","nodeType":"YulIdentifier","src":"5272:3:44"},"nativeSrc":"5272:22:44","nodeType":"YulFunctionCall","src":"5272:22:44"},{"name":"dataEnd","nativeSrc":"5296:7:44","nodeType":"YulIdentifier","src":"5296:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5251:20:44","nodeType":"YulIdentifier","src":"5251:20:44"},"nativeSrc":"5251:53:44","nodeType":"YulFunctionCall","src":"5251:53:44"},"variableNames":[{"name":"value3","nativeSrc":"5241:6:44","nodeType":"YulIdentifier","src":"5241:6:44"}]}]},{"nativeSrc":"5324:118:44","nodeType":"YulBlock","src":"5324:118:44","statements":[{"nativeSrc":"5339:17:44","nodeType":"YulVariableDeclaration","src":"5339:17:44","value":{"kind":"number","nativeSrc":"5353:3:44","nodeType":"YulLiteral","src":"5353:3:44","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"5343:6:44","nodeType":"YulTypedName","src":"5343:6:44","type":""}]},{"nativeSrc":"5370:62:44","nodeType":"YulAssignment","src":"5370:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5404:9:44","nodeType":"YulIdentifier","src":"5404:9:44"},{"name":"offset","nativeSrc":"5415:6:44","nodeType":"YulIdentifier","src":"5415:6:44"}],"functionName":{"name":"add","nativeSrc":"5400:3:44","nodeType":"YulIdentifier","src":"5400:3:44"},"nativeSrc":"5400:22:44","nodeType":"YulFunctionCall","src":"5400:22:44"},{"name":"dataEnd","nativeSrc":"5424:7:44","nodeType":"YulIdentifier","src":"5424:7:44"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"5380:19:44","nodeType":"YulIdentifier","src":"5380:19:44"},"nativeSrc":"5380:52:44","nodeType":"YulFunctionCall","src":"5380:52:44"},"variableNames":[{"name":"value4","nativeSrc":"5370:6:44","nodeType":"YulIdentifier","src":"5370:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64","nativeSrc":"4540:909:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4611:9:44","nodeType":"YulTypedName","src":"4611:9:44","type":""},{"name":"dataEnd","nativeSrc":"4622:7:44","nodeType":"YulTypedName","src":"4622:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4634:6:44","nodeType":"YulTypedName","src":"4634:6:44","type":""},{"name":"value1","nativeSrc":"4642:6:44","nodeType":"YulTypedName","src":"4642:6:44","type":""},{"name":"value2","nativeSrc":"4650:6:44","nodeType":"YulTypedName","src":"4650:6:44","type":""},{"name":"value3","nativeSrc":"4658:6:44","nodeType":"YulTypedName","src":"4658:6:44","type":""},{"name":"value4","nativeSrc":"4666:6:44","nodeType":"YulTypedName","src":"4666:6:44","type":""}],"src":"4540:909:44"},{"body":{"nativeSrc":"5497:48:44","nodeType":"YulBlock","src":"5497:48:44","statements":[{"nativeSrc":"5507:32:44","nodeType":"YulAssignment","src":"5507:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5532:5:44","nodeType":"YulIdentifier","src":"5532:5:44"}],"functionName":{"name":"iszero","nativeSrc":"5525:6:44","nodeType":"YulIdentifier","src":"5525:6:44"},"nativeSrc":"5525:13:44","nodeType":"YulFunctionCall","src":"5525:13:44"}],"functionName":{"name":"iszero","nativeSrc":"5518:6:44","nodeType":"YulIdentifier","src":"5518:6:44"},"nativeSrc":"5518:21:44","nodeType":"YulFunctionCall","src":"5518:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"5507:7:44","nodeType":"YulIdentifier","src":"5507:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"5455:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5479:5:44","nodeType":"YulTypedName","src":"5479:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5489:7:44","nodeType":"YulTypedName","src":"5489:7:44","type":""}],"src":"5455:90:44"},{"body":{"nativeSrc":"5591:76:44","nodeType":"YulBlock","src":"5591:76:44","statements":[{"body":{"nativeSrc":"5645:16:44","nodeType":"YulBlock","src":"5645:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5654:1:44","nodeType":"YulLiteral","src":"5654:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5657:1:44","nodeType":"YulLiteral","src":"5657:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5647:6:44","nodeType":"YulIdentifier","src":"5647:6:44"},"nativeSrc":"5647:12:44","nodeType":"YulFunctionCall","src":"5647:12:44"},"nativeSrc":"5647:12:44","nodeType":"YulExpressionStatement","src":"5647:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5614:5:44","nodeType":"YulIdentifier","src":"5614:5:44"},{"arguments":[{"name":"value","nativeSrc":"5636:5:44","nodeType":"YulIdentifier","src":"5636:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"5621:14:44","nodeType":"YulIdentifier","src":"5621:14:44"},"nativeSrc":"5621:21:44","nodeType":"YulFunctionCall","src":"5621:21:44"}],"functionName":{"name":"eq","nativeSrc":"5611:2:44","nodeType":"YulIdentifier","src":"5611:2:44"},"nativeSrc":"5611:32:44","nodeType":"YulFunctionCall","src":"5611:32:44"}],"functionName":{"name":"iszero","nativeSrc":"5604:6:44","nodeType":"YulIdentifier","src":"5604:6:44"},"nativeSrc":"5604:40:44","nodeType":"YulFunctionCall","src":"5604:40:44"},"nativeSrc":"5601:60:44","nodeType":"YulIf","src":"5601:60:44"}]},"name":"validator_revert_t_bool","nativeSrc":"5551:116:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5584:5:44","nodeType":"YulTypedName","src":"5584:5:44","type":""}],"src":"5551:116:44"},{"body":{"nativeSrc":"5722:84:44","nodeType":"YulBlock","src":"5722:84:44","statements":[{"nativeSrc":"5732:29:44","nodeType":"YulAssignment","src":"5732:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"5754:6:44","nodeType":"YulIdentifier","src":"5754:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"5741:12:44","nodeType":"YulIdentifier","src":"5741:12:44"},"nativeSrc":"5741:20:44","nodeType":"YulFunctionCall","src":"5741:20:44"},"variableNames":[{"name":"value","nativeSrc":"5732:5:44","nodeType":"YulIdentifier","src":"5732:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5794:5:44","nodeType":"YulIdentifier","src":"5794:5:44"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"5770:23:44","nodeType":"YulIdentifier","src":"5770:23:44"},"nativeSrc":"5770:30:44","nodeType":"YulFunctionCall","src":"5770:30:44"},"nativeSrc":"5770:30:44","nodeType":"YulExpressionStatement","src":"5770:30:44"}]},"name":"abi_decode_t_bool","nativeSrc":"5673:133:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5700:6:44","nodeType":"YulTypedName","src":"5700:6:44","type":""},{"name":"end","nativeSrc":"5708:3:44","nodeType":"YulTypedName","src":"5708:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5716:5:44","nodeType":"YulTypedName","src":"5716:5:44","type":""}],"src":"5673:133:44"},{"body":{"nativeSrc":"5892:388:44","nodeType":"YulBlock","src":"5892:388:44","statements":[{"body":{"nativeSrc":"5938:83:44","nodeType":"YulBlock","src":"5938:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5940:77:44","nodeType":"YulIdentifier","src":"5940:77:44"},"nativeSrc":"5940:79:44","nodeType":"YulFunctionCall","src":"5940:79:44"},"nativeSrc":"5940:79:44","nodeType":"YulExpressionStatement","src":"5940:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5913:7:44","nodeType":"YulIdentifier","src":"5913:7:44"},{"name":"headStart","nativeSrc":"5922:9:44","nodeType":"YulIdentifier","src":"5922:9:44"}],"functionName":{"name":"sub","nativeSrc":"5909:3:44","nodeType":"YulIdentifier","src":"5909:3:44"},"nativeSrc":"5909:23:44","nodeType":"YulFunctionCall","src":"5909:23:44"},{"kind":"number","nativeSrc":"5934:2:44","nodeType":"YulLiteral","src":"5934:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5905:3:44","nodeType":"YulIdentifier","src":"5905:3:44"},"nativeSrc":"5905:32:44","nodeType":"YulFunctionCall","src":"5905:32:44"},"nativeSrc":"5902:119:44","nodeType":"YulIf","src":"5902:119:44"},{"nativeSrc":"6031:117:44","nodeType":"YulBlock","src":"6031:117:44","statements":[{"nativeSrc":"6046:15:44","nodeType":"YulVariableDeclaration","src":"6046:15:44","value":{"kind":"number","nativeSrc":"6060:1:44","nodeType":"YulLiteral","src":"6060:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6050:6:44","nodeType":"YulTypedName","src":"6050:6:44","type":""}]},{"nativeSrc":"6075:63:44","nodeType":"YulAssignment","src":"6075:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6110:9:44","nodeType":"YulIdentifier","src":"6110:9:44"},{"name":"offset","nativeSrc":"6121:6:44","nodeType":"YulIdentifier","src":"6121:6:44"}],"functionName":{"name":"add","nativeSrc":"6106:3:44","nodeType":"YulIdentifier","src":"6106:3:44"},"nativeSrc":"6106:22:44","nodeType":"YulFunctionCall","src":"6106:22:44"},{"name":"dataEnd","nativeSrc":"6130:7:44","nodeType":"YulIdentifier","src":"6130:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6085:20:44","nodeType":"YulIdentifier","src":"6085:20:44"},"nativeSrc":"6085:53:44","nodeType":"YulFunctionCall","src":"6085:53:44"},"variableNames":[{"name":"value0","nativeSrc":"6075:6:44","nodeType":"YulIdentifier","src":"6075:6:44"}]}]},{"nativeSrc":"6158:115:44","nodeType":"YulBlock","src":"6158:115:44","statements":[{"nativeSrc":"6173:16:44","nodeType":"YulVariableDeclaration","src":"6173:16:44","value":{"kind":"number","nativeSrc":"6187:2:44","nodeType":"YulLiteral","src":"6187:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6177:6:44","nodeType":"YulTypedName","src":"6177:6:44","type":""}]},{"nativeSrc":"6203:60:44","nodeType":"YulAssignment","src":"6203:60:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6235:9:44","nodeType":"YulIdentifier","src":"6235:9:44"},{"name":"offset","nativeSrc":"6246:6:44","nodeType":"YulIdentifier","src":"6246:6:44"}],"functionName":{"name":"add","nativeSrc":"6231:3:44","nodeType":"YulIdentifier","src":"6231:3:44"},"nativeSrc":"6231:22:44","nodeType":"YulFunctionCall","src":"6231:22:44"},{"name":"dataEnd","nativeSrc":"6255:7:44","nodeType":"YulIdentifier","src":"6255:7:44"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"6213:17:44","nodeType":"YulIdentifier","src":"6213:17:44"},"nativeSrc":"6213:50:44","nodeType":"YulFunctionCall","src":"6213:50:44"},"variableNames":[{"name":"value1","nativeSrc":"6203:6:44","nodeType":"YulIdentifier","src":"6203:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"5812:468:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5854:9:44","nodeType":"YulTypedName","src":"5854:9:44","type":""},{"name":"dataEnd","nativeSrc":"5865:7:44","nodeType":"YulTypedName","src":"5865:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5877:6:44","nodeType":"YulTypedName","src":"5877:6:44","type":""},{"name":"value1","nativeSrc":"5885:6:44","nodeType":"YulTypedName","src":"5885:6:44","type":""}],"src":"5812:468:44"},{"body":{"nativeSrc":"6402:647:44","nodeType":"YulBlock","src":"6402:647:44","statements":[{"body":{"nativeSrc":"6449:83:44","nodeType":"YulBlock","src":"6449:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6451:77:44","nodeType":"YulIdentifier","src":"6451:77:44"},"nativeSrc":"6451:79:44","nodeType":"YulFunctionCall","src":"6451:79:44"},"nativeSrc":"6451:79:44","nodeType":"YulExpressionStatement","src":"6451:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6423:7:44","nodeType":"YulIdentifier","src":"6423:7:44"},{"name":"headStart","nativeSrc":"6432:9:44","nodeType":"YulIdentifier","src":"6432:9:44"}],"functionName":{"name":"sub","nativeSrc":"6419:3:44","nodeType":"YulIdentifier","src":"6419:3:44"},"nativeSrc":"6419:23:44","nodeType":"YulFunctionCall","src":"6419:23:44"},{"kind":"number","nativeSrc":"6444:3:44","nodeType":"YulLiteral","src":"6444:3:44","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"6415:3:44","nodeType":"YulIdentifier","src":"6415:3:44"},"nativeSrc":"6415:33:44","nodeType":"YulFunctionCall","src":"6415:33:44"},"nativeSrc":"6412:120:44","nodeType":"YulIf","src":"6412:120:44"},{"nativeSrc":"6542:117:44","nodeType":"YulBlock","src":"6542:117:44","statements":[{"nativeSrc":"6557:15:44","nodeType":"YulVariableDeclaration","src":"6557:15:44","value":{"kind":"number","nativeSrc":"6571:1:44","nodeType":"YulLiteral","src":"6571:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6561:6:44","nodeType":"YulTypedName","src":"6561:6:44","type":""}]},{"nativeSrc":"6586:63:44","nodeType":"YulAssignment","src":"6586:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6621:9:44","nodeType":"YulIdentifier","src":"6621:9:44"},{"name":"offset","nativeSrc":"6632:6:44","nodeType":"YulIdentifier","src":"6632:6:44"}],"functionName":{"name":"add","nativeSrc":"6617:3:44","nodeType":"YulIdentifier","src":"6617:3:44"},"nativeSrc":"6617:22:44","nodeType":"YulFunctionCall","src":"6617:22:44"},{"name":"dataEnd","nativeSrc":"6641:7:44","nodeType":"YulIdentifier","src":"6641:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"6596:20:44","nodeType":"YulIdentifier","src":"6596:20:44"},"nativeSrc":"6596:53:44","nodeType":"YulFunctionCall","src":"6596:53:44"},"variableNames":[{"name":"value0","nativeSrc":"6586:6:44","nodeType":"YulIdentifier","src":"6586:6:44"}]}]},{"nativeSrc":"6669:118:44","nodeType":"YulBlock","src":"6669:118:44","statements":[{"nativeSrc":"6684:16:44","nodeType":"YulVariableDeclaration","src":"6684:16:44","value":{"kind":"number","nativeSrc":"6698:2:44","nodeType":"YulLiteral","src":"6698:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6688:6:44","nodeType":"YulTypedName","src":"6688:6:44","type":""}]},{"nativeSrc":"6714:63:44","nodeType":"YulAssignment","src":"6714:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6749:9:44","nodeType":"YulIdentifier","src":"6749:9:44"},{"name":"offset","nativeSrc":"6760:6:44","nodeType":"YulIdentifier","src":"6760:6:44"}],"functionName":{"name":"add","nativeSrc":"6745:3:44","nodeType":"YulIdentifier","src":"6745:3:44"},"nativeSrc":"6745:22:44","nodeType":"YulFunctionCall","src":"6745:22:44"},{"name":"dataEnd","nativeSrc":"6769:7:44","nodeType":"YulIdentifier","src":"6769:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6724:20:44","nodeType":"YulIdentifier","src":"6724:20:44"},"nativeSrc":"6724:53:44","nodeType":"YulFunctionCall","src":"6724:53:44"},"variableNames":[{"name":"value1","nativeSrc":"6714:6:44","nodeType":"YulIdentifier","src":"6714:6:44"}]}]},{"nativeSrc":"6797:118:44","nodeType":"YulBlock","src":"6797:118:44","statements":[{"nativeSrc":"6812:16:44","nodeType":"YulVariableDeclaration","src":"6812:16:44","value":{"kind":"number","nativeSrc":"6826:2:44","nodeType":"YulLiteral","src":"6826:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6816:6:44","nodeType":"YulTypedName","src":"6816:6:44","type":""}]},{"nativeSrc":"6842:63:44","nodeType":"YulAssignment","src":"6842:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6877:9:44","nodeType":"YulIdentifier","src":"6877:9:44"},{"name":"offset","nativeSrc":"6888:6:44","nodeType":"YulIdentifier","src":"6888:6:44"}],"functionName":{"name":"add","nativeSrc":"6873:3:44","nodeType":"YulIdentifier","src":"6873:3:44"},"nativeSrc":"6873:22:44","nodeType":"YulFunctionCall","src":"6873:22:44"},{"name":"dataEnd","nativeSrc":"6897:7:44","nodeType":"YulIdentifier","src":"6897:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6852:20:44","nodeType":"YulIdentifier","src":"6852:20:44"},"nativeSrc":"6852:53:44","nodeType":"YulFunctionCall","src":"6852:53:44"},"variableNames":[{"name":"value2","nativeSrc":"6842:6:44","nodeType":"YulIdentifier","src":"6842:6:44"}]}]},{"nativeSrc":"6925:117:44","nodeType":"YulBlock","src":"6925:117:44","statements":[{"nativeSrc":"6940:16:44","nodeType":"YulVariableDeclaration","src":"6940:16:44","value":{"kind":"number","nativeSrc":"6954:2:44","nodeType":"YulLiteral","src":"6954:2:44","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"6944:6:44","nodeType":"YulTypedName","src":"6944:6:44","type":""}]},{"nativeSrc":"6970:62:44","nodeType":"YulAssignment","src":"6970:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7004:9:44","nodeType":"YulIdentifier","src":"7004:9:44"},{"name":"offset","nativeSrc":"7015:6:44","nodeType":"YulIdentifier","src":"7015:6:44"}],"functionName":{"name":"add","nativeSrc":"7000:3:44","nodeType":"YulIdentifier","src":"7000:3:44"},"nativeSrc":"7000:22:44","nodeType":"YulFunctionCall","src":"7000:22:44"},{"name":"dataEnd","nativeSrc":"7024:7:44","nodeType":"YulIdentifier","src":"7024:7:44"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"6980:19:44","nodeType":"YulIdentifier","src":"6980:19:44"},"nativeSrc":"6980:52:44","nodeType":"YulFunctionCall","src":"6980:52:44"},"variableNames":[{"name":"value3","nativeSrc":"6970:6:44","nodeType":"YulIdentifier","src":"6970:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint64","nativeSrc":"6286:763:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6348:9:44","nodeType":"YulTypedName","src":"6348:9:44","type":""},{"name":"dataEnd","nativeSrc":"6359:7:44","nodeType":"YulTypedName","src":"6359:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6371:6:44","nodeType":"YulTypedName","src":"6371:6:44","type":""},{"name":"value1","nativeSrc":"6379:6:44","nodeType":"YulTypedName","src":"6379:6:44","type":""},{"name":"value2","nativeSrc":"6387:6:44","nodeType":"YulTypedName","src":"6387:6:44","type":""},{"name":"value3","nativeSrc":"6395:6:44","nodeType":"YulTypedName","src":"6395:6:44","type":""}],"src":"6286:763:44"},{"body":{"nativeSrc":"7138:391:44","nodeType":"YulBlock","src":"7138:391:44","statements":[{"body":{"nativeSrc":"7184:83:44","nodeType":"YulBlock","src":"7184:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7186:77:44","nodeType":"YulIdentifier","src":"7186:77:44"},"nativeSrc":"7186:79:44","nodeType":"YulFunctionCall","src":"7186:79:44"},"nativeSrc":"7186:79:44","nodeType":"YulExpressionStatement","src":"7186:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7159:7:44","nodeType":"YulIdentifier","src":"7159:7:44"},{"name":"headStart","nativeSrc":"7168:9:44","nodeType":"YulIdentifier","src":"7168:9:44"}],"functionName":{"name":"sub","nativeSrc":"7155:3:44","nodeType":"YulIdentifier","src":"7155:3:44"},"nativeSrc":"7155:23:44","nodeType":"YulFunctionCall","src":"7155:23:44"},{"kind":"number","nativeSrc":"7180:2:44","nodeType":"YulLiteral","src":"7180:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7151:3:44","nodeType":"YulIdentifier","src":"7151:3:44"},"nativeSrc":"7151:32:44","nodeType":"YulFunctionCall","src":"7151:32:44"},"nativeSrc":"7148:119:44","nodeType":"YulIf","src":"7148:119:44"},{"nativeSrc":"7277:117:44","nodeType":"YulBlock","src":"7277:117:44","statements":[{"nativeSrc":"7292:15:44","nodeType":"YulVariableDeclaration","src":"7292:15:44","value":{"kind":"number","nativeSrc":"7306:1:44","nodeType":"YulLiteral","src":"7306:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7296:6:44","nodeType":"YulTypedName","src":"7296:6:44","type":""}]},{"nativeSrc":"7321:63:44","nodeType":"YulAssignment","src":"7321:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7356:9:44","nodeType":"YulIdentifier","src":"7356:9:44"},{"name":"offset","nativeSrc":"7367:6:44","nodeType":"YulIdentifier","src":"7367:6:44"}],"functionName":{"name":"add","nativeSrc":"7352:3:44","nodeType":"YulIdentifier","src":"7352:3:44"},"nativeSrc":"7352:22:44","nodeType":"YulFunctionCall","src":"7352:22:44"},{"name":"dataEnd","nativeSrc":"7376:7:44","nodeType":"YulIdentifier","src":"7376:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7331:20:44","nodeType":"YulIdentifier","src":"7331:20:44"},"nativeSrc":"7331:53:44","nodeType":"YulFunctionCall","src":"7331:53:44"},"variableNames":[{"name":"value0","nativeSrc":"7321:6:44","nodeType":"YulIdentifier","src":"7321:6:44"}]}]},{"nativeSrc":"7404:118:44","nodeType":"YulBlock","src":"7404:118:44","statements":[{"nativeSrc":"7419:16:44","nodeType":"YulVariableDeclaration","src":"7419:16:44","value":{"kind":"number","nativeSrc":"7433:2:44","nodeType":"YulLiteral","src":"7433:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7423:6:44","nodeType":"YulTypedName","src":"7423:6:44","type":""}]},{"nativeSrc":"7449:63:44","nodeType":"YulAssignment","src":"7449:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7484:9:44","nodeType":"YulIdentifier","src":"7484:9:44"},{"name":"offset","nativeSrc":"7495:6:44","nodeType":"YulIdentifier","src":"7495:6:44"}],"functionName":{"name":"add","nativeSrc":"7480:3:44","nodeType":"YulIdentifier","src":"7480:3:44"},"nativeSrc":"7480:22:44","nodeType":"YulFunctionCall","src":"7480:22:44"},{"name":"dataEnd","nativeSrc":"7504:7:44","nodeType":"YulIdentifier","src":"7504:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7459:20:44","nodeType":"YulIdentifier","src":"7459:20:44"},"nativeSrc":"7459:53:44","nodeType":"YulFunctionCall","src":"7459:53:44"},"variableNames":[{"name":"value1","nativeSrc":"7449:6:44","nodeType":"YulIdentifier","src":"7449:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"7055:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7100:9:44","nodeType":"YulTypedName","src":"7100:9:44","type":""},{"name":"dataEnd","nativeSrc":"7111:7:44","nodeType":"YulTypedName","src":"7111:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7123:6:44","nodeType":"YulTypedName","src":"7123:6:44","type":""},{"name":"value1","nativeSrc":"7131:6:44","nodeType":"YulTypedName","src":"7131:6:44","type":""}],"src":"7055:474:44"},{"body":{"nativeSrc":"7594:50:44","nodeType":"YulBlock","src":"7594:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7611:3:44","nodeType":"YulIdentifier","src":"7611:3:44"},{"arguments":[{"name":"value","nativeSrc":"7631:5:44","nodeType":"YulIdentifier","src":"7631:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"7616:14:44","nodeType":"YulIdentifier","src":"7616:14:44"},"nativeSrc":"7616:21:44","nodeType":"YulFunctionCall","src":"7616:21:44"}],"functionName":{"name":"mstore","nativeSrc":"7604:6:44","nodeType":"YulIdentifier","src":"7604:6:44"},"nativeSrc":"7604:34:44","nodeType":"YulFunctionCall","src":"7604:34:44"},"nativeSrc":"7604:34:44","nodeType":"YulExpressionStatement","src":"7604:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7535:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7582:5:44","nodeType":"YulTypedName","src":"7582:5:44","type":""},{"name":"pos","nativeSrc":"7589:3:44","nodeType":"YulTypedName","src":"7589:3:44","type":""}],"src":"7535:109:44"},{"body":{"nativeSrc":"7742:118:44","nodeType":"YulBlock","src":"7742:118:44","statements":[{"nativeSrc":"7752:26:44","nodeType":"YulAssignment","src":"7752:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7764:9:44","nodeType":"YulIdentifier","src":"7764:9:44"},{"kind":"number","nativeSrc":"7775:2:44","nodeType":"YulLiteral","src":"7775:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7760:3:44","nodeType":"YulIdentifier","src":"7760:3:44"},"nativeSrc":"7760:18:44","nodeType":"YulFunctionCall","src":"7760:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7752:4:44","nodeType":"YulIdentifier","src":"7752:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7826:6:44","nodeType":"YulIdentifier","src":"7826:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7839:9:44","nodeType":"YulIdentifier","src":"7839:9:44"},{"kind":"number","nativeSrc":"7850:1:44","nodeType":"YulLiteral","src":"7850:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7835:3:44","nodeType":"YulIdentifier","src":"7835:3:44"},"nativeSrc":"7835:17:44","nodeType":"YulFunctionCall","src":"7835:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"7788:37:44","nodeType":"YulIdentifier","src":"7788:37:44"},"nativeSrc":"7788:65:44","nodeType":"YulFunctionCall","src":"7788:65:44"},"nativeSrc":"7788:65:44","nodeType":"YulExpressionStatement","src":"7788:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"7650:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7714:9:44","nodeType":"YulTypedName","src":"7714:9:44","type":""},{"name":"value0","nativeSrc":"7726:6:44","nodeType":"YulTypedName","src":"7726:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7737:4:44","nodeType":"YulTypedName","src":"7737:4:44","type":""}],"src":"7650:210:44"},{"body":{"nativeSrc":"7913:32:44","nodeType":"YulBlock","src":"7913:32:44","statements":[{"nativeSrc":"7923:16:44","nodeType":"YulAssignment","src":"7923:16:44","value":{"name":"value","nativeSrc":"7934:5:44","nodeType":"YulIdentifier","src":"7934:5:44"},"variableNames":[{"name":"aligned","nativeSrc":"7923:7:44","nodeType":"YulIdentifier","src":"7923:7:44"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"7866:79:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7895:5:44","nodeType":"YulTypedName","src":"7895:5:44","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"7905:7:44","nodeType":"YulTypedName","src":"7905:7:44","type":""}],"src":"7866:79:44"},{"body":{"nativeSrc":"8034:74:44","nodeType":"YulBlock","src":"8034:74:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8051:3:44","nodeType":"YulIdentifier","src":"8051:3:44"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8094:5:44","nodeType":"YulIdentifier","src":"8094:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"8076:17:44","nodeType":"YulIdentifier","src":"8076:17:44"},"nativeSrc":"8076:24:44","nodeType":"YulFunctionCall","src":"8076:24:44"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"8056:19:44","nodeType":"YulIdentifier","src":"8056:19:44"},"nativeSrc":"8056:45:44","nodeType":"YulFunctionCall","src":"8056:45:44"}],"functionName":{"name":"mstore","nativeSrc":"8044:6:44","nodeType":"YulIdentifier","src":"8044:6:44"},"nativeSrc":"8044:58:44","nodeType":"YulFunctionCall","src":"8044:58:44"},"nativeSrc":"8044:58:44","nodeType":"YulExpressionStatement","src":"8044:58:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"7951:157:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8022:5:44","nodeType":"YulTypedName","src":"8022:5:44","type":""},{"name":"pos","nativeSrc":"8029:3:44","nodeType":"YulTypedName","src":"8029:3:44","type":""}],"src":"7951:157:44"},{"body":{"nativeSrc":"8258:253:44","nodeType":"YulBlock","src":"8258:253:44","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"8331:6:44","nodeType":"YulIdentifier","src":"8331:6:44"},{"name":"pos","nativeSrc":"8340:3:44","nodeType":"YulIdentifier","src":"8340:3:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"8269:61:44","nodeType":"YulIdentifier","src":"8269:61:44"},"nativeSrc":"8269:75:44","nodeType":"YulFunctionCall","src":"8269:75:44"},"nativeSrc":"8269:75:44","nodeType":"YulExpressionStatement","src":"8269:75:44"},{"nativeSrc":"8353:19:44","nodeType":"YulAssignment","src":"8353:19:44","value":{"arguments":[{"name":"pos","nativeSrc":"8364:3:44","nodeType":"YulIdentifier","src":"8364:3:44"},{"kind":"number","nativeSrc":"8369:2:44","nodeType":"YulLiteral","src":"8369:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8360:3:44","nodeType":"YulIdentifier","src":"8360:3:44"},"nativeSrc":"8360:12:44","nodeType":"YulFunctionCall","src":"8360:12:44"},"variableNames":[{"name":"pos","nativeSrc":"8353:3:44","nodeType":"YulIdentifier","src":"8353:3:44"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"8444:6:44","nodeType":"YulIdentifier","src":"8444:6:44"},{"name":"pos","nativeSrc":"8453:3:44","nodeType":"YulIdentifier","src":"8453:3:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"8382:61:44","nodeType":"YulIdentifier","src":"8382:61:44"},"nativeSrc":"8382:75:44","nodeType":"YulFunctionCall","src":"8382:75:44"},"nativeSrc":"8382:75:44","nodeType":"YulExpressionStatement","src":"8382:75:44"},{"nativeSrc":"8466:19:44","nodeType":"YulAssignment","src":"8466:19:44","value":{"arguments":[{"name":"pos","nativeSrc":"8477:3:44","nodeType":"YulIdentifier","src":"8477:3:44"},{"kind":"number","nativeSrc":"8482:2:44","nodeType":"YulLiteral","src":"8482:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8473:3:44","nodeType":"YulIdentifier","src":"8473:3:44"},"nativeSrc":"8473:12:44","nodeType":"YulFunctionCall","src":"8473:12:44"},"variableNames":[{"name":"pos","nativeSrc":"8466:3:44","nodeType":"YulIdentifier","src":"8466:3:44"}]},{"nativeSrc":"8495:10:44","nodeType":"YulAssignment","src":"8495:10:44","value":{"name":"pos","nativeSrc":"8502:3:44","nodeType":"YulIdentifier","src":"8502:3:44"},"variableNames":[{"name":"end","nativeSrc":"8495:3:44","nodeType":"YulIdentifier","src":"8495:3:44"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"8114:397:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8229:3:44","nodeType":"YulTypedName","src":"8229:3:44","type":""},{"name":"value1","nativeSrc":"8235:6:44","nodeType":"YulTypedName","src":"8235:6:44","type":""},{"name":"value0","nativeSrc":"8243:6:44","nodeType":"YulTypedName","src":"8243:6:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8254:3:44","nodeType":"YulTypedName","src":"8254:3:44","type":""}],"src":"8114:397:44"}]},"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_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(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_bytes32(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_bytes32t_bytes32t_address(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint64(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffff)\n    }\n\n    function validator_revert_t_uint64(value) {\n        if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint64(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint64(value)\n    }\n\n    function abi_decode_tuple_t_bytes32t_uint64(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint64(value))\n    }\n\n    function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint64_to_t_uint64_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_bytes32t_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_bytes32(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 abi_decode_tuple_t_bytes32t_bytes32t_addresst_addresst_uint64(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint64(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\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 abi_decode_tuple_t_bytes32t_addresst_addresst_uint64(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_bytes32(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_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint64(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 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 leftAlign_t_bytes32(value) -> aligned {\n        aligned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n    }\n\n    function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1,  pos)\n        pos := add(pos, 32)\n\n        end := pos\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80635b0fc9c3116100715780635b0fc9c3146101b15780635ef2c7f0146101cd578063a22cb465146101e9578063cf40882314610205578063e985e9c514610221578063f79fe53814610251576100b4565b80630178b8bf146100b957806302571be3146100e957806306ab59231461011957806314ab90381461014957806316a25cbd146101655780631896f70a14610195575b600080fd5b6100d360048036038101906100ce9190610dda565b610281565b6040516100e09190610e48565b60405180910390f35b61010360048036038101906100fe9190610dda565b6102c0565b6040516101109190610e48565b60405180910390f35b610133600480360381019061012e9190610e8f565b610342565b6040516101409190610ef1565b60405180910390f35b610163600480360381019061015e9190610f4c565b6104c5565b005b61017f600480360381019061017a9190610dda565b610643565b60405161018c9190610f9b565b60405180910390f35b6101af60048036038101906101aa9190610fb6565b610676565b005b6101cb60048036038101906101c69190610fb6565b61080c565b005b6101e760048036038101906101e29190610ff6565b610958565b005b61020360048036038101906101fe91906110a9565b61097a565b005b61021f600480360381019061021a91906110e9565b610a77565b005b61023b60048036038101906102369190611150565b610a92565b604051610248919061119f565b60405180910390f35b61026b60048036038101906102669190610dda565b610b26565b604051610278919061119f565b60405180910390f35b600080600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361033857600091505061033d565b809150505b919050565b600083600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061043f5750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61044857600080fd5b6000868660405160200161045d9291906111db565b60405160208183030381529060405280519060200120905061047f8186610b94565b85877fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82876040516104b09190610e48565b60405180910390a38093505050509392505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806105c05750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6105c957600080fd5b837f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68846040516105f99190610f9b565b60405180910390a28260008086815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b600080600083815260200190815260200160002060010160149054906101000a900467ffffffffffffffff169050919050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107715750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61077a57600080fd5b837f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0846040516107aa9190610e48565b60405180910390a28260008086815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806109075750600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61091057600080fd5b61091a8484610b94565b837fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2668460405161094a9190610e48565b60405180910390a250505050565b6000610965868686610342565b9050610972818484610bec565b505050505050565b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a6b919061119f565b60405180910390a35050565b610a81848461080c565b610a8c848383610bec565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b8060008084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610ce1578160008085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550827f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a083604051610cd89190610e48565b60405180910390a25b60008084815260200190815260200160002060010160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168167ffffffffffffffff1614610d9a578060008085815260200190815260200160002060010160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550827f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa6882604051610d919190610f9b565b60405180910390a25b505050565b600080fd5b6000819050919050565b610db781610da4565b8114610dc257600080fd5b50565b600081359050610dd481610dae565b92915050565b600060208284031215610df057610def610d9f565b5b6000610dfe84828501610dc5565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e3282610e07565b9050919050565b610e4281610e27565b82525050565b6000602082019050610e5d6000830184610e39565b92915050565b610e6c81610e27565b8114610e7757600080fd5b50565b600081359050610e8981610e63565b92915050565b600080600060608486031215610ea857610ea7610d9f565b5b6000610eb686828701610dc5565b9350506020610ec786828701610dc5565b9250506040610ed886828701610e7a565b9150509250925092565b610eeb81610da4565b82525050565b6000602082019050610f066000830184610ee2565b92915050565b600067ffffffffffffffff82169050919050565b610f2981610f0c565b8114610f3457600080fd5b50565b600081359050610f4681610f20565b92915050565b60008060408385031215610f6357610f62610d9f565b5b6000610f7185828601610dc5565b9250506020610f8285828601610f37565b9150509250929050565b610f9581610f0c565b82525050565b6000602082019050610fb06000830184610f8c565b92915050565b60008060408385031215610fcd57610fcc610d9f565b5b6000610fdb85828601610dc5565b9250506020610fec85828601610e7a565b9150509250929050565b600080600080600060a0868803121561101257611011610d9f565b5b600061102088828901610dc5565b955050602061103188828901610dc5565b945050604061104288828901610e7a565b935050606061105388828901610e7a565b925050608061106488828901610f37565b9150509295509295909350565b60008115159050919050565b61108681611071565b811461109157600080fd5b50565b6000813590506110a38161107d565b92915050565b600080604083850312156110c0576110bf610d9f565b5b60006110ce85828601610e7a565b92505060206110df85828601611094565b9150509250929050565b6000806000806080858703121561110357611102610d9f565b5b600061111187828801610dc5565b945050602061112287828801610e7a565b935050604061113387828801610e7a565b925050606061114487828801610f37565b91505092959194509250565b6000806040838503121561116757611166610d9f565b5b600061117585828601610e7a565b925050602061118685828601610e7a565b9150509250929050565b61119981611071565b82525050565b60006020820190506111b46000830184611190565b92915050565b6000819050919050565b6111d56111d082610da4565b6111ba565b82525050565b60006111e782856111c4565b6020820191506111f782846111c4565b602082019150819050939250505056fea26469706673582212200717631813312b249f96ab75b8093ffda54230dde478068a1618a6d1027d35db64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5B0FC9C3 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x5B0FC9C3 EQ PUSH2 0x1B1 JUMPI DUP1 PUSH4 0x5EF2C7F0 EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0xCF408823 EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x221 JUMPI DUP1 PUSH4 0xF79FE538 EQ PUSH2 0x251 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x178B8BF EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x2571BE3 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x6AB5923 EQ PUSH2 0x119 JUMPI DUP1 PUSH4 0x14AB9038 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x16A25CBD EQ PUSH2 0x165 JUMPI DUP1 PUSH4 0x1896F70A EQ PUSH2 0x195 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x103 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFE SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x110 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xE8F JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x140 SWAP2 SWAP1 PUSH2 0xEF1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15E SWAP2 SWAP1 PUSH2 0xF4C JUMP JUMPDEST PUSH2 0x4C5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17A SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0xF9B 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 0xFB6 JUMP JUMPDEST PUSH2 0x676 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0xFB6 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0xFF6 JUMP JUMPDEST PUSH2 0x958 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x203 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x97A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x10E9 JUMP JUMPDEST PUSH2 0xA77 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x1150 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x248 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0xDDA JUMP JUMPDEST PUSH2 0xB26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x338 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x33D JUMP JUMPDEST DUP1 SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x43F JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x11DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x47F DUP2 DUP7 PUSH2 0xB94 JUMP JUMPDEST DUP6 DUP8 PUSH32 0xCE0457FE73731F824CC272376169235128C118B49D344817417C6D108D155E82 DUP8 PUSH1 0x40 MLOAD PUSH2 0x4B0 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x5C0 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x5C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F9 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x771 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7AA SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD 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 DUP2 PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x907 JUMPI POP PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST PUSH2 0x910 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x91A DUP5 DUP5 PUSH2 0xB94 JUMP JUMPDEST DUP4 PUSH32 0xD4735D920B0F87494915F556DD9B54C8F309026070CAEA5C737245152564D266 DUP5 PUSH1 0x40 MLOAD PUSH2 0x94A SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x965 DUP7 DUP7 DUP7 PUSH2 0x342 JUMP JUMPDEST SWAP1 POP PUSH2 0x972 DUP2 DUP5 DUP5 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 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 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA6B SWAP2 SWAP1 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA81 DUP5 DUP5 PUSH2 0x80C JUMP JUMPDEST PUSH2 0xA8C DUP5 DUP4 DUP4 PUSH2 0xBEC JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 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 PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCE1 JUMPI DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x335721B01866DC23FBEE8B6B2C7B1E14D6F05C28CD35A2C934239F94095602A0 DUP4 PUSH1 0x40 MLOAD PUSH2 0xCD8 SWAP2 SWAP1 PUSH2 0xE48 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD9A JUMPI DUP1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH32 0x1D4F9BBFC9CAB89D66E1A1562F2233CCBF1308CB4F63DE2EAD5787ADDDB8FA68 DUP3 PUSH1 0x40 MLOAD PUSH2 0xD91 SWAP2 SWAP1 PUSH2 0xF9B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB7 DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDD4 DUP2 PUSH2 0xDAE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF0 JUMPI PUSH2 0xDEF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDFE DUP5 DUP3 DUP6 ADD PUSH2 0xDC5 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 0xE32 DUP3 PUSH2 0xE07 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE42 DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE5D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE39 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE6C DUP2 PUSH2 0xE27 JUMP JUMPDEST DUP2 EQ PUSH2 0xE77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE89 DUP2 PUSH2 0xE63 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xEA8 JUMPI PUSH2 0xEA7 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEB6 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xEC7 DUP7 DUP3 DUP8 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xED8 DUP7 DUP3 DUP8 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xEEB DUP2 PUSH2 0xDA4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF06 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xEE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF29 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP2 EQ PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF46 DUP2 PUSH2 0xF20 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF63 JUMPI PUSH2 0xF62 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF71 DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xF95 DUP2 PUSH2 0xF0C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xFB0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF8C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xFCD JUMPI PUSH2 0xFCC PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFDB DUP6 DUP3 DUP7 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xFEC DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1012 JUMPI PUSH2 0x1011 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1020 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1031 DUP9 DUP3 DUP10 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1042 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1053 DUP9 DUP3 DUP10 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1064 DUP9 DUP3 DUP10 ADD PUSH2 0xF37 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1086 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP2 EQ PUSH2 0x1091 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10A3 DUP2 PUSH2 0x107D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10C0 JUMPI PUSH2 0x10BF PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10CE DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10DF DUP6 DUP3 DUP7 ADD PUSH2 0x1094 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1103 JUMPI PUSH2 0x1102 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1111 DUP8 DUP3 DUP9 ADD PUSH2 0xDC5 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1122 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1133 DUP8 DUP3 DUP9 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1144 DUP8 DUP3 DUP9 ADD PUSH2 0xF37 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 0x1167 JUMPI PUSH2 0x1166 PUSH2 0xD9F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1186 DUP6 DUP3 DUP7 ADD PUSH2 0xE7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1199 DUP2 PUSH2 0x1071 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1190 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11D5 PUSH2 0x11D0 DUP3 PUSH2 0xDA4 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11E7 DUP3 DUP6 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x11F7 DUP3 DUP5 PUSH2 0x11C4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SMOD OR PUSH4 0x1813312B 0x24 SWAP16 SWAP7 0xAB PUSH22 0xB8093FFDA54230DDE478068A1618A6D1027D35DB6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"85:6342:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4675:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4259:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2494:335;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4982:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3004:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1997:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1464:294;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3871:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;928:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5732:177;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5266:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4675:139;4759:7;4785;:13;4793:4;4785:13;;;;;;;;;;;:22;;;;;;;;;;;;4778:29;;4675:139;;;:::o;4259:243::-;4340:7;4359:12;4374:7;:13;4382:4;4374:13;;;;;;;;;;;:19;;;;;;;;;;;;4359:34;;4423:4;4407:21;;:4;:21;;;4403:71;;4459:3;4444:19;;;;;4403:71;4491:4;4484:11;;;4259:243;;;;:::o;2494:335::-;2643:7;2628:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;2662:15:::1;2707:4;2713:5;2690:29;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2680:40;;;;;;2662:58;;2730:25;2740:7;2749:5;2730:9;:25::i;:::-;2785:5;2779:4;2770:28;2792:5;2770:28;;;;;;:::i;:::-;;;;;;;;2815:7;2808:14;;;420:133:::0;2494:335;;;;;;:::o;3360:177::-;3459:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;3487:4:::1;3480:17;3493:3;3480:17;;;;;;:::i;:::-;;;;;;;;3527:3;3507:7;:13:::0;3515:4:::1;3507:13;;;;;;;;;;;:17;;;:23;;;;;;;;;;;;;;;;;;420:133:::0;3360:177;;;:::o;4982:114::-;5047:6;5072:7;:13;5080:4;5072:13;;;;;;;;;;;:17;;;;;;;;;;;;5065:24;;4982:114;;;:::o;3004:208::-;3114:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;3147:4:::1;3135:27;3153:8;3135:27;;;;;;:::i;:::-;;;;;;;;3197:8;3172:7;:13:::0;3180:4:::1;3172:13;;;;;;;;;;;:22;;;:33;;;;;;;;;;;;;;;;;;420:133:::0;3004:208;;;:::o;1997:185::-;2101:4;430:13;446:7;:13;454:4;446:13;;;;;;;;;;;:19;;;;;;;;;;;;430:35;;492:10;483:19;;:5;:19;;;:51;;;;506:9;:16;516:5;506:16;;;;;;;;;;;;;;;:28;523:10;506:28;;;;;;;;;;;;;;;;;;;;;;;;;483:51;475:60;;;;;;2117:22:::1;2127:4;2133:5;2117:9;:22::i;:::-;2163:4;2154:21;2169:5;2154:21;;;;;;:::i;:::-;;;;;;;;420:133:::0;1997:185;;;:::o;1464:294::-;1646:15;1664:35;1680:4;1686:5;1693;1664:15;:35::i;:::-;1646:53;;1709:42;1728:7;1737:8;1747:3;1709:18;:42::i;:::-;1636:122;1464:294;;;;;:::o;3871:228::-;4023:8;3989:9;:21;3999:10;3989:21;;;;;;;;;;;;;;;:31;4011:8;3989:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;4073:8;4046:46;;4061:10;4046:46;;;4083:8;4046:46;;;;;;:::i;:::-;;;;;;;;3871:228;;:::o;928:229::-;1080:21;1089:4;1095:5;1080:8;:21::i;:::-;1111:39;1130:4;1136:8;1146:3;1111:18;:39::i;:::-;928:229;;;;:::o;5732:177::-;5853:4;5876:9;:16;5886:5;5876:16;;;;;;;;;;;;;;;:26;5893:8;5876:26;;;;;;;;;;;;;;;;;;;;;;;;;5869:33;;5732:177;;;;:::o;5266:153::-;5354:4;5408:3;5377:35;;:7;:13;5385:4;5377:13;;;;;;;;;;;:19;;;;;;;;;;;;:35;;;;5370:42;;5266:153;;;:::o;5915:109::-;6012:5;5990:7;:13;5998:4;5990:13;;;;;;;;;;;:19;;;:27;;;;;;;;;;;;;;;;;;5915:109;;:::o;6030:395::-;6167:7;:13;6175:4;6167:13;;;;;;;;;;;:22;;;;;;;;;;;;6155:34;;:8;:34;;;6151:144;;6230:8;6205:7;:13;6213:4;6205:13;;;;;;;;;;;:22;;;:33;;;;;;;;;;;;;;;;;;6269:4;6257:27;6275:8;6257:27;;;;;;:::i;:::-;;;;;;;;6151:144;6316:7;:13;6324:4;6316:13;;;;;;;;;;;:17;;;;;;;;;;;;6309:24;;:3;:24;;;6305:114;;6369:3;6349:7;:13;6357:4;6349:13;;;;;;;;;;;:17;;;:23;;;;;;;;;;;;;;;;;;6398:4;6391:17;6404:3;6391:17;;;;;;:::i;:::-;;;;;;;;6305:114;6030:395;;;:::o;88:117:44:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:619::-;1961:6;1969;1977;2026:2;2014:9;2005:7;2001:23;1997:32;1994:119;;;2032:79;;:::i;:::-;1994:119;2152:1;2177:53;2222:7;2213:6;2202:9;2198:22;2177:53;:::i;:::-;2167:63;;2123:117;2279:2;2305:53;2350:7;2341:6;2330:9;2326:22;2305:53;:::i;:::-;2295:63;;2250:118;2407:2;2433:53;2478:7;2469:6;2458:9;2454:22;2433:53;:::i;:::-;2423:63;;2378:118;1884:619;;;;;:::o;2509:118::-;2596:24;2614:5;2596:24;:::i;:::-;2591:3;2584:37;2509:118;;:::o;2633:222::-;2726:4;2764:2;2753:9;2749:18;2741:26;;2777:71;2845:1;2834:9;2830:17;2821:6;2777:71;:::i;:::-;2633:222;;;;:::o;2861:101::-;2897:7;2937:18;2930:5;2926:30;2915:41;;2861:101;;;:::o;2968:120::-;3040:23;3057:5;3040:23;:::i;:::-;3033:5;3030:34;3020:62;;3078:1;3075;3068:12;3020:62;2968:120;:::o;3094:137::-;3139:5;3177:6;3164:20;3155:29;;3193:32;3219:5;3193:32;:::i;:::-;3094:137;;;;:::o;3237:472::-;3304:6;3312;3361:2;3349:9;3340:7;3336:23;3332:32;3329:119;;;3367:79;;:::i;:::-;3329:119;3487:1;3512:53;3557:7;3548:6;3537:9;3533:22;3512:53;:::i;:::-;3502:63;;3458:117;3614:2;3640:52;3684:7;3675:6;3664:9;3660:22;3640:52;:::i;:::-;3630:62;;3585:117;3237:472;;;;;:::o;3715:115::-;3800:23;3817:5;3800:23;:::i;:::-;3795:3;3788:36;3715:115;;:::o;3836:218::-;3927:4;3965:2;3954:9;3950:18;3942:26;;3978:69;4044:1;4033:9;4029:17;4020:6;3978:69;:::i;:::-;3836:218;;;;:::o;4060:474::-;4128:6;4136;4185:2;4173:9;4164:7;4160:23;4156:32;4153:119;;;4191:79;;:::i;:::-;4153:119;4311:1;4336:53;4381:7;4372:6;4361:9;4357:22;4336:53;:::i;:::-;4326:63;;4282:117;4438:2;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4409:118;4060:474;;;;;:::o;4540:909::-;4634:6;4642;4650;4658;4666;4715:3;4703:9;4694:7;4690:23;4686:33;4683:120;;;4722:79;;:::i;:::-;4683:120;4842:1;4867:53;4912:7;4903:6;4892:9;4888:22;4867:53;:::i;:::-;4857:63;;4813:117;4969:2;4995:53;5040:7;5031:6;5020:9;5016:22;4995:53;:::i;:::-;4985:63;;4940:118;5097:2;5123:53;5168:7;5159:6;5148:9;5144:22;5123:53;:::i;:::-;5113:63;;5068:118;5225:2;5251:53;5296:7;5287:6;5276:9;5272:22;5251:53;:::i;:::-;5241:63;;5196:118;5353:3;5380:52;5424:7;5415:6;5404:9;5400:22;5380:52;:::i;:::-;5370:62;;5324:118;4540:909;;;;;;;;:::o;5455:90::-;5489:7;5532:5;5525:13;5518:21;5507:32;;5455:90;;;:::o;5551:116::-;5621:21;5636:5;5621:21;:::i;:::-;5614:5;5611:32;5601:60;;5657:1;5654;5647:12;5601:60;5551:116;:::o;5673:133::-;5716:5;5754:6;5741:20;5732:29;;5770:30;5794:5;5770:30;:::i;:::-;5673:133;;;;:::o;5812:468::-;5877:6;5885;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;6187:2;6213:50;6255:7;6246:6;6235:9;6231:22;6213:50;:::i;:::-;6203:60;;6158:115;5812:468;;;;;:::o;6286:763::-;6371:6;6379;6387;6395;6444:3;6432:9;6423:7;6419:23;6415:33;6412:120;;;6451:79;;:::i;:::-;6412:120;6571:1;6596:53;6641:7;6632:6;6621:9;6617:22;6596:53;:::i;:::-;6586:63;;6542:117;6698:2;6724:53;6769:7;6760:6;6749:9;6745:22;6724:53;:::i;:::-;6714:63;;6669:118;6826:2;6852:53;6897:7;6888:6;6877:9;6873:22;6852:53;:::i;:::-;6842:63;;6797:118;6954:2;6980:52;7024:7;7015:6;7004:9;7000:22;6980:52;:::i;:::-;6970:62;;6925:117;6286:763;;;;;;;:::o;7055:474::-;7123:6;7131;7180:2;7168:9;7159:7;7155:23;7151:32;7148:119;;;7186:79;;:::i;:::-;7148:119;7306:1;7331:53;7376:7;7367:6;7356:9;7352:22;7331:53;:::i;:::-;7321:63;;7277:117;7433:2;7459:53;7504:7;7495:6;7484:9;7480:22;7459:53;:::i;:::-;7449:63;;7404:118;7055:474;;;;;:::o;7535:109::-;7616:21;7631:5;7616:21;:::i;:::-;7611:3;7604:34;7535:109;;:::o;7650:210::-;7737:4;7775:2;7764:9;7760:18;7752:26;;7788:65;7850:1;7839:9;7835:17;7826:6;7788:65;:::i;:::-;7650:210;;;;:::o;7866:79::-;7905:7;7934:5;7923:16;;7866:79;;;:::o;7951:157::-;8056:45;8076:24;8094:5;8076:24;:::i;:::-;8056:45;:::i;:::-;8051:3;8044:58;7951:157;;:::o;8114:397::-;8254:3;8269:75;8340:3;8331:6;8269:75;:::i;:::-;8369:2;8364:3;8360:12;8353:19;;8382:75;8453:3;8444:6;8382:75;:::i;:::-;8482:2;8477:3;8473:12;8466:19;;8502:3;8495:10;;8114:397;;;;;:::o"},"methodIdentifiers":{"isApprovedForAll(address,address)":"e985e9c5","owner(bytes32)":"02571be3","recordExists(bytes32)":"f79fe538","resolver(bytes32)":"0178b8bf","setApprovalForAll(address,bool)":"a22cb465","setOwner(bytes32,address)":"5b0fc9c3","setRecord(bytes32,address,address,uint64)":"cf408823","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setSubnodeRecord(bytes32,bytes32,address,address,uint64)":"5ef2c7f0","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"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\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"recordExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setSubnodeRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructs a new ENS registry.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Query if an address is an authorized operator for another address.\",\"params\":{\"operator\":\"The address that acts on behalf of the owner.\",\"owner\":\"The address that owns the records.\"},\"returns\":{\"_0\":\"True if `operator` is an approved operator for `owner`, false otherwise.\"}},\"owner(bytes32)\":{\"details\":\"Returns the address that owns the specified node.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the owner.\"}},\"recordExists(bytes32)\":{\"details\":\"Returns whether a record has been imported to the registry.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"Bool if record exists\"}},\"resolver(bytes32)\":{\"details\":\"Returns the address of the resolver for the specified node.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"address of the resolver.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Enable or disable approval for a third party (\\\"operator\\\") to manage  all of `msg.sender`'s ENS records. Emits the ApprovalForAll event.\",\"params\":{\"approved\":\"True if the operator is approved, false to revoke approval.\",\"operator\":\"Address to add to the set of authorized operators.\"}},\"setOwner(bytes32,address)\":{\"details\":\"Transfers ownership of a node to a new address. May only be called by the current owner of the node.\",\"params\":{\"node\":\"The node to transfer ownership of.\",\"owner\":\"The address of the new owner.\"}},\"setRecord(bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a node.\",\"params\":{\"node\":\"The node to update.\",\"owner\":\"The address of the new owner.\",\"resolver\":\"The address of the resolver.\",\"ttl\":\"The TTL in seconds.\"}},\"setResolver(bytes32,address)\":{\"details\":\"Sets the resolver address for the specified node.\",\"params\":{\"node\":\"The node to update.\",\"resolver\":\"The address of the resolver.\"}},\"setSubnodeOwner(bytes32,bytes32,address)\":{\"details\":\"Transfers ownership of a subnode keccak256(node, label) to a new address. May only be called by the owner of the parent node.\",\"params\":{\"label\":\"The hash of the label specifying the subnode.\",\"node\":\"The parent node.\",\"owner\":\"The address of the new owner.\"}},\"setSubnodeRecord(bytes32,bytes32,address,address,uint64)\":{\"details\":\"Sets the record for a subnode.\",\"params\":{\"label\":\"The hash of the label specifying the subnode.\",\"node\":\"The parent node.\",\"owner\":\"The address of the new owner.\",\"resolver\":\"The address of the resolver.\",\"ttl\":\"The TTL in seconds.\"}},\"setTTL(bytes32,uint64)\":{\"details\":\"Sets the TTL for the specified node.\",\"params\":{\"node\":\"The node to update.\",\"ttl\":\"The TTL in seconds.\"}},\"ttl(bytes32)\":{\"details\":\"Returns the TTL of a node, and any records associated with it.\",\"params\":{\"node\":\"The specified node.\"},\"returns\":{\"_0\":\"ttl of the node.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The ENS registry contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\":\"ENSRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol\":{\"keccak256\":\"0xa7a7a64fb980e521c991415e416fd4106a42f892479805e1daa51ecb0e2e5198\",\"urls\":[\"bzz-raw://9e38bcea7309c8d530266511936ba6aece79c8e892e6beb9cbe1b8e35cbd4bcc\",\"dweb:/ipfs/QmVRmcagSnoryJtcuiYnQgAcQcfm2MPVqsMadNYM89boEJ\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":154,"contract":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry","label":"records","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(Record)149_storage)"},{"astId":160,"contract":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry","label":"operators","offset":0,"slot":"1","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_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"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_bytes32,t_struct(Record)149_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct ENSRegistry.Record)","numberOfBytes":"32","value":"t_struct(Record)149_storage"},"t_struct(Record)149_storage":{"encoding":"inplace","label":"struct ENSRegistry.Record","members":[{"astId":144,"contract":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":146,"contract":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry","label":"resolver","offset":0,"slot":"1","type":"t_address"},{"astId":148,"contract":"@ensdomains/ens-contracts/contracts/registry/ENSRegistry.sol:ENSRegistry","label":"ttl","offset":20,"slot":"1","type":"t_uint64"}],"numberOfBytes":"64"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}}}},"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol":{"Ownable2StepUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","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":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"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\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"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 access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. This extension of the {Ownable} contract includes a two-step mechanism to transfer ownership, where the new owner must call {acceptOwnership} in order to replace the old one. This can help prevent common mistakes, such as transfers of ownership to incorrect accounts, or to contracts that are unable to interact with the permission system. The initial owner is specified at deployment time in the constructor for `Ownable`. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"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\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending 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\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol":{"OwnableUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","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":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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"},{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"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\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"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\"},{\"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\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"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\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. 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-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() {     _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable {     function initialize() initializer public {         __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\");     } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {     function initializeV2() reinitializer(2) public {         __ERC20Permit_init(\\\"MyToken\\\");     } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"ContextUpgradeable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"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.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public {     require(hasRole(MY_ROLE, msg.sender));     ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"@openzeppelin/contracts/access/AccessControl.sol:AccessControl","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"}}}}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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":1580,"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"}}}}},"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol":{"AccessControlDefaultAdminRules":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows specifying special rules to manage the `DEFAULT_ADMIN_ROLE` holder, which is a sensitive role with special permissions over other roles that may potentially have privileged rights in the system. If a specific role doesn't have an admin role assigned, the holder of the `DEFAULT_ADMIN_ROLE` will have the ability to grant it and revoke it. This contract implements the following risk mitigations on top of {AccessControl}: * Only one account holds the `DEFAULT_ADMIN_ROLE` since deployment until it's potentially renounced. * Enforces a 2-step process to transfer the `DEFAULT_ADMIN_ROLE` to another account. * Enforces a configurable delay between the two steps, with the ability to cancel before the transfer is accepted. * The delay can be changed by scheduling, see {changeDefaultAdminDelay}. * It is not possible to use another role to manage the `DEFAULT_ADMIN_ROLE`. Example usage: ```solidity contract MyToken is AccessControlDefaultAdminRules {   constructor() AccessControlDefaultAdminRules(     3 days,     msg.sender // Explicit initial `DEFAULT_ADMIN_ROLE` holder    ) {} } ```\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Sets the initial values for {defaultAdminDelay} and {defaultAdmin} address.\"},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":\"AccessControlDefaultAdminRules\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"},{"astId":1741,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_pendingDefaultAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1743,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_pendingDefaultAdminSchedule","offset":20,"slot":"1","type":"t_uint48"},{"astId":1745,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_currentDelay","offset":26,"slot":"1","type":"t_uint48"},{"astId":1747,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_currentDefaultAdmin","offset":0,"slot":"2","type":"t_address"},{"astId":1749,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_pendingDelay","offset":20,"slot":"2","type":"t_uint48"},{"astId":1751,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"_pendingDelaySchedule","offset":26,"slot":"2","type":"t_uint48"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol:AccessControlDefaultAdminRules","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint48":{"encoding":"inplace","label":"uint48","numberOfBytes":"6"}}}}},"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol":{"IAccessControlDefaultAdminRules":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlDefaultAdminRules declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":\"IAccessControlDefaultAdminRules\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/IERC1967.sol":{"IERC1967":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":\"IERC1967\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/interfaces/IERC5313.sol":{"IERC5313":{"abi":[{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the Light Contract Ownership Standard. A standardized minimal interface required to identify an account that controls a contract\",\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Gets the address of the owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5313.sol\":\"IERC5313\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_2591":{"entryPoint":null,"id":2591,"parameterSlots":2,"returnSlots":0},"@_checkNonPayable_2897":{"entryPoint":542,"id":2897,"parameterSlots":0,"returnSlots":0},"@_revert_3386":{"entryPoint":762,"id":3386,"parameterSlots":1,"returnSlots":0},"@_setImplementation_2677":{"entryPoint":193,"id":2677,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_3304":{"entryPoint":404,"id":3304,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_3643":{"entryPoint":603,"id":3643,"parameterSlots":1,"returnSlots":1},"@upgradeToAndCall_2713":{"entryPoint":60,"id":2713,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_3344":{"entryPoint":613,"id":3344,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1186,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":924,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1252,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1298,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1390,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1503,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1405,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1068,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":831,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1095,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1432,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1443,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":883,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":851,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1144,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1019,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":972,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":945,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":950,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":846,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":841,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":955,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":901,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5143:44","nodeType":"YulBlock","src":"0:5143:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"934:28:44","nodeType":"YulBlock","src":"934:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:44","nodeType":"YulLiteral","src":"951:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:44","nodeType":"YulLiteral","src":"954:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:44","nodeType":"YulIdentifier","src":"944:6:44"},"nativeSrc":"944:12:44","nodeType":"YulFunctionCall","src":"944:12:44"},"nativeSrc":"944:12:44","nodeType":"YulExpressionStatement","src":"944:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:44","nodeType":"YulFunctionDefinition","src":"845:117:44"},{"body":{"nativeSrc":"1057:28:44","nodeType":"YulBlock","src":"1057:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:44","nodeType":"YulLiteral","src":"1074:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:44","nodeType":"YulLiteral","src":"1077:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:44","nodeType":"YulIdentifier","src":"1067:6:44"},"nativeSrc":"1067:12:44","nodeType":"YulFunctionCall","src":"1067:12:44"},"nativeSrc":"1067:12:44","nodeType":"YulExpressionStatement","src":"1067:12:44"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:44","nodeType":"YulFunctionDefinition","src":"968:117:44"},{"body":{"nativeSrc":"1139:54:44","nodeType":"YulBlock","src":"1139:54:44","statements":[{"nativeSrc":"1149:38:44","nodeType":"YulAssignment","src":"1149:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:44","nodeType":"YulIdentifier","src":"1167:5:44"},{"kind":"number","nativeSrc":"1174:2:44","nodeType":"YulLiteral","src":"1174:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:44","nodeType":"YulIdentifier","src":"1163:3:44"},"nativeSrc":"1163:14:44","nodeType":"YulFunctionCall","src":"1163:14:44"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:44","nodeType":"YulLiteral","src":"1183:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:44","nodeType":"YulIdentifier","src":"1179:3:44"},"nativeSrc":"1179:7:44","nodeType":"YulFunctionCall","src":"1179:7:44"}],"functionName":{"name":"and","nativeSrc":"1159:3:44","nodeType":"YulIdentifier","src":"1159:3:44"},"nativeSrc":"1159:28:44","nodeType":"YulFunctionCall","src":"1159:28:44"},"variableNames":[{"name":"result","nativeSrc":"1149:6:44","nodeType":"YulIdentifier","src":"1149:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:44","nodeType":"YulTypedName","src":"1122:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:44","nodeType":"YulTypedName","src":"1132:6:44","type":""}],"src":"1091:102:44"},{"body":{"nativeSrc":"1227:152:44","nodeType":"YulBlock","src":"1227:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:44","nodeType":"YulLiteral","src":"1244:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:44","nodeType":"YulLiteral","src":"1247:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:44","nodeType":"YulIdentifier","src":"1237:6:44"},"nativeSrc":"1237:88:44","nodeType":"YulFunctionCall","src":"1237:88:44"},"nativeSrc":"1237:88:44","nodeType":"YulExpressionStatement","src":"1237:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:44","nodeType":"YulLiteral","src":"1341:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:44","nodeType":"YulLiteral","src":"1344:4:44","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:44","nodeType":"YulIdentifier","src":"1334:6:44"},"nativeSrc":"1334:15:44","nodeType":"YulFunctionCall","src":"1334:15:44"},"nativeSrc":"1334:15:44","nodeType":"YulExpressionStatement","src":"1334:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:44","nodeType":"YulLiteral","src":"1365:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:44","nodeType":"YulLiteral","src":"1368:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:44","nodeType":"YulIdentifier","src":"1358:6:44"},"nativeSrc":"1358:15:44","nodeType":"YulFunctionCall","src":"1358:15:44"},"nativeSrc":"1358:15:44","nodeType":"YulExpressionStatement","src":"1358:15:44"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:44","nodeType":"YulFunctionDefinition","src":"1199:180:44"},{"body":{"nativeSrc":"1428:238:44","nodeType":"YulBlock","src":"1428:238:44","statements":[{"nativeSrc":"1438:58:44","nodeType":"YulVariableDeclaration","src":"1438:58:44","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:44","nodeType":"YulIdentifier","src":"1460:6:44"},{"arguments":[{"name":"size","nativeSrc":"1490:4:44","nodeType":"YulIdentifier","src":"1490:4:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:44","nodeType":"YulIdentifier","src":"1468:21:44"},"nativeSrc":"1468:27:44","nodeType":"YulFunctionCall","src":"1468:27:44"}],"functionName":{"name":"add","nativeSrc":"1456:3:44","nodeType":"YulIdentifier","src":"1456:3:44"},"nativeSrc":"1456:40:44","nodeType":"YulFunctionCall","src":"1456:40:44"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:44","nodeType":"YulTypedName","src":"1442:10:44","type":""}]},{"body":{"nativeSrc":"1607:22:44","nodeType":"YulBlock","src":"1607:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:44","nodeType":"YulIdentifier","src":"1609:16:44"},"nativeSrc":"1609:18:44","nodeType":"YulFunctionCall","src":"1609:18:44"},"nativeSrc":"1609:18:44","nodeType":"YulExpressionStatement","src":"1609:18:44"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:44","nodeType":"YulIdentifier","src":"1550:10:44"},{"kind":"number","nativeSrc":"1562:18:44","nodeType":"YulLiteral","src":"1562:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:44","nodeType":"YulIdentifier","src":"1547:2:44"},"nativeSrc":"1547:34:44","nodeType":"YulFunctionCall","src":"1547:34:44"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:44","nodeType":"YulIdentifier","src":"1586:10:44"},{"name":"memPtr","nativeSrc":"1598:6:44","nodeType":"YulIdentifier","src":"1598:6:44"}],"functionName":{"name":"lt","nativeSrc":"1583:2:44","nodeType":"YulIdentifier","src":"1583:2:44"},"nativeSrc":"1583:22:44","nodeType":"YulFunctionCall","src":"1583:22:44"}],"functionName":{"name":"or","nativeSrc":"1544:2:44","nodeType":"YulIdentifier","src":"1544:2:44"},"nativeSrc":"1544:62:44","nodeType":"YulFunctionCall","src":"1544:62:44"},"nativeSrc":"1541:88:44","nodeType":"YulIf","src":"1541:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:44","nodeType":"YulLiteral","src":"1645:2:44","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:44","nodeType":"YulIdentifier","src":"1649:10:44"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:44","nodeType":"YulIdentifier","src":"1638:6:44"},"nativeSrc":"1638:22:44","nodeType":"YulFunctionCall","src":"1638:22:44"},"nativeSrc":"1638:22:44","nodeType":"YulExpressionStatement","src":"1638:22:44"}]},"name":"finalize_allocation","nativeSrc":"1385:281:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:44","nodeType":"YulTypedName","src":"1414:6:44","type":""},{"name":"size","nativeSrc":"1422:4:44","nodeType":"YulTypedName","src":"1422:4:44","type":""}],"src":"1385:281:44"},{"body":{"nativeSrc":"1713:88:44","nodeType":"YulBlock","src":"1713:88:44","statements":[{"nativeSrc":"1723:30:44","nodeType":"YulAssignment","src":"1723:30:44","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:44","nodeType":"YulIdentifier","src":"1733:18:44"},"nativeSrc":"1733:20:44","nodeType":"YulFunctionCall","src":"1733:20:44"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:44","nodeType":"YulIdentifier","src":"1723:6:44"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:44","nodeType":"YulIdentifier","src":"1782:6:44"},{"name":"size","nativeSrc":"1790:4:44","nodeType":"YulIdentifier","src":"1790:4:44"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:44","nodeType":"YulIdentifier","src":"1762:19:44"},"nativeSrc":"1762:33:44","nodeType":"YulFunctionCall","src":"1762:33:44"},"nativeSrc":"1762:33:44","nodeType":"YulExpressionStatement","src":"1762:33:44"}]},"name":"allocate_memory","nativeSrc":"1672:129:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:44","nodeType":"YulTypedName","src":"1697:4:44","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:44","nodeType":"YulTypedName","src":"1706:6:44","type":""}],"src":"1672:129:44"},{"body":{"nativeSrc":"1873:241:44","nodeType":"YulBlock","src":"1873:241:44","statements":[{"body":{"nativeSrc":"1978:22:44","nodeType":"YulBlock","src":"1978:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:44","nodeType":"YulIdentifier","src":"1980:16:44"},"nativeSrc":"1980:18:44","nodeType":"YulFunctionCall","src":"1980:18:44"},"nativeSrc":"1980:18:44","nodeType":"YulExpressionStatement","src":"1980:18:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:44","nodeType":"YulIdentifier","src":"1950:6:44"},{"kind":"number","nativeSrc":"1958:18:44","nodeType":"YulLiteral","src":"1958:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:44","nodeType":"YulIdentifier","src":"1947:2:44"},"nativeSrc":"1947:30:44","nodeType":"YulFunctionCall","src":"1947:30:44"},"nativeSrc":"1944:56:44","nodeType":"YulIf","src":"1944:56:44"},{"nativeSrc":"2010:37:44","nodeType":"YulAssignment","src":"2010:37:44","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:44","nodeType":"YulIdentifier","src":"2040:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:44","nodeType":"YulIdentifier","src":"2018:21:44"},"nativeSrc":"2018:29:44","nodeType":"YulFunctionCall","src":"2018:29:44"},"variableNames":[{"name":"size","nativeSrc":"2010:4:44","nodeType":"YulIdentifier","src":"2010:4:44"}]},{"nativeSrc":"2084:23:44","nodeType":"YulAssignment","src":"2084:23:44","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:44","nodeType":"YulIdentifier","src":"2096:4:44"},{"kind":"number","nativeSrc":"2102:4:44","nodeType":"YulLiteral","src":"2102:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:44","nodeType":"YulIdentifier","src":"2092:3:44"},"nativeSrc":"2092:15:44","nodeType":"YulFunctionCall","src":"2092:15:44"},"variableNames":[{"name":"size","nativeSrc":"2084:4:44","nodeType":"YulIdentifier","src":"2084:4:44"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:44","nodeType":"YulTypedName","src":"1857:6:44","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:44","nodeType":"YulTypedName","src":"1868:4:44","type":""}],"src":"1807:307:44"},{"body":{"nativeSrc":"2182:186:44","nodeType":"YulBlock","src":"2182:186:44","statements":[{"nativeSrc":"2193:10:44","nodeType":"YulVariableDeclaration","src":"2193:10:44","value":{"kind":"number","nativeSrc":"2202:1:44","nodeType":"YulLiteral","src":"2202:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:44","nodeType":"YulTypedName","src":"2197:1:44","type":""}]},{"body":{"nativeSrc":"2262:63:44","nodeType":"YulBlock","src":"2262:63:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:44","nodeType":"YulIdentifier","src":"2287:3:44"},{"name":"i","nativeSrc":"2292:1:44","nodeType":"YulIdentifier","src":"2292:1:44"}],"functionName":{"name":"add","nativeSrc":"2283:3:44","nodeType":"YulIdentifier","src":"2283:3:44"},"nativeSrc":"2283:11:44","nodeType":"YulFunctionCall","src":"2283:11:44"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:44","nodeType":"YulIdentifier","src":"2306:3:44"},{"name":"i","nativeSrc":"2311:1:44","nodeType":"YulIdentifier","src":"2311:1:44"}],"functionName":{"name":"add","nativeSrc":"2302:3:44","nodeType":"YulIdentifier","src":"2302:3:44"},"nativeSrc":"2302:11:44","nodeType":"YulFunctionCall","src":"2302:11:44"}],"functionName":{"name":"mload","nativeSrc":"2296:5:44","nodeType":"YulIdentifier","src":"2296:5:44"},"nativeSrc":"2296:18:44","nodeType":"YulFunctionCall","src":"2296:18:44"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:44","nodeType":"YulIdentifier","src":"2276:6:44"},"nativeSrc":"2276:39:44","nodeType":"YulFunctionCall","src":"2276:39:44"},"nativeSrc":"2276:39:44","nodeType":"YulExpressionStatement","src":"2276:39:44"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:44","nodeType":"YulIdentifier","src":"2223:1:44"},{"name":"length","nativeSrc":"2226:6:44","nodeType":"YulIdentifier","src":"2226:6:44"}],"functionName":{"name":"lt","nativeSrc":"2220:2:44","nodeType":"YulIdentifier","src":"2220:2:44"},"nativeSrc":"2220:13:44","nodeType":"YulFunctionCall","src":"2220:13:44"},"nativeSrc":"2212:113:44","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:44","nodeType":"YulBlock","src":"2234:19:44","statements":[{"nativeSrc":"2236:15:44","nodeType":"YulAssignment","src":"2236:15:44","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:44","nodeType":"YulIdentifier","src":"2245:1:44"},{"kind":"number","nativeSrc":"2248:2:44","nodeType":"YulLiteral","src":"2248:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:44","nodeType":"YulIdentifier","src":"2241:3:44"},"nativeSrc":"2241:10:44","nodeType":"YulFunctionCall","src":"2241:10:44"},"variableNames":[{"name":"i","nativeSrc":"2236:1:44","nodeType":"YulIdentifier","src":"2236:1:44"}]}]},"pre":{"nativeSrc":"2216:3:44","nodeType":"YulBlock","src":"2216:3:44","statements":[]},"src":"2212:113:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:44","nodeType":"YulIdentifier","src":"2345:3:44"},{"name":"length","nativeSrc":"2350:6:44","nodeType":"YulIdentifier","src":"2350:6:44"}],"functionName":{"name":"add","nativeSrc":"2341:3:44","nodeType":"YulIdentifier","src":"2341:3:44"},"nativeSrc":"2341:16:44","nodeType":"YulFunctionCall","src":"2341:16:44"},{"kind":"number","nativeSrc":"2359:1:44","nodeType":"YulLiteral","src":"2359:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:44","nodeType":"YulIdentifier","src":"2334:6:44"},"nativeSrc":"2334:27:44","nodeType":"YulFunctionCall","src":"2334:27:44"},"nativeSrc":"2334:27:44","nodeType":"YulExpressionStatement","src":"2334:27:44"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:44","nodeType":"YulTypedName","src":"2164:3:44","type":""},{"name":"dst","nativeSrc":"2169:3:44","nodeType":"YulTypedName","src":"2169:3:44","type":""},{"name":"length","nativeSrc":"2174:6:44","nodeType":"YulTypedName","src":"2174:6:44","type":""}],"src":"2120:248:44"},{"body":{"nativeSrc":"2468:338:44","nodeType":"YulBlock","src":"2468:338:44","statements":[{"nativeSrc":"2478:74:44","nodeType":"YulAssignment","src":"2478:74:44","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:44","nodeType":"YulIdentifier","src":"2544:6:44"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:44","nodeType":"YulIdentifier","src":"2503:40:44"},"nativeSrc":"2503:48:44","nodeType":"YulFunctionCall","src":"2503:48:44"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:44","nodeType":"YulIdentifier","src":"2487:15:44"},"nativeSrc":"2487:65:44","nodeType":"YulFunctionCall","src":"2487:65:44"},"variableNames":[{"name":"array","nativeSrc":"2478:5:44","nodeType":"YulIdentifier","src":"2478:5:44"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:44","nodeType":"YulIdentifier","src":"2568:5:44"},{"name":"length","nativeSrc":"2575:6:44","nodeType":"YulIdentifier","src":"2575:6:44"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:44","nodeType":"YulIdentifier","src":"2561:6:44"},"nativeSrc":"2561:21:44","nodeType":"YulFunctionCall","src":"2561:21:44"},"nativeSrc":"2561:21:44","nodeType":"YulExpressionStatement","src":"2561:21:44"},{"nativeSrc":"2591:27:44","nodeType":"YulVariableDeclaration","src":"2591:27:44","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:44","nodeType":"YulIdentifier","src":"2606:5:44"},{"kind":"number","nativeSrc":"2613:4:44","nodeType":"YulLiteral","src":"2613:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:44","nodeType":"YulIdentifier","src":"2602:3:44"},"nativeSrc":"2602:16:44","nodeType":"YulFunctionCall","src":"2602:16:44"},"variables":[{"name":"dst","nativeSrc":"2595:3:44","nodeType":"YulTypedName","src":"2595:3:44","type":""}]},{"body":{"nativeSrc":"2656:83:44","nodeType":"YulBlock","src":"2656:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:44","nodeType":"YulIdentifier","src":"2658:77:44"},"nativeSrc":"2658:79:44","nodeType":"YulFunctionCall","src":"2658:79:44"},"nativeSrc":"2658:79:44","nodeType":"YulExpressionStatement","src":"2658:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:44","nodeType":"YulIdentifier","src":"2637:3:44"},{"name":"length","nativeSrc":"2642:6:44","nodeType":"YulIdentifier","src":"2642:6:44"}],"functionName":{"name":"add","nativeSrc":"2633:3:44","nodeType":"YulIdentifier","src":"2633:3:44"},"nativeSrc":"2633:16:44","nodeType":"YulFunctionCall","src":"2633:16:44"},{"name":"end","nativeSrc":"2651:3:44","nodeType":"YulIdentifier","src":"2651:3:44"}],"functionName":{"name":"gt","nativeSrc":"2630:2:44","nodeType":"YulIdentifier","src":"2630:2:44"},"nativeSrc":"2630:25:44","nodeType":"YulFunctionCall","src":"2630:25:44"},"nativeSrc":"2627:112:44","nodeType":"YulIf","src":"2627:112:44"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:44","nodeType":"YulIdentifier","src":"2783:3:44"},{"name":"dst","nativeSrc":"2788:3:44","nodeType":"YulIdentifier","src":"2788:3:44"},{"name":"length","nativeSrc":"2793:6:44","nodeType":"YulIdentifier","src":"2793:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:44","nodeType":"YulIdentifier","src":"2748:34:44"},"nativeSrc":"2748:52:44","nodeType":"YulFunctionCall","src":"2748:52:44"},"nativeSrc":"2748:52:44","nodeType":"YulExpressionStatement","src":"2748:52:44"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:44","nodeType":"YulTypedName","src":"2441:3:44","type":""},{"name":"length","nativeSrc":"2446:6:44","nodeType":"YulTypedName","src":"2446:6:44","type":""},{"name":"end","nativeSrc":"2454:3:44","nodeType":"YulTypedName","src":"2454:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:44","nodeType":"YulTypedName","src":"2462:5:44","type":""}],"src":"2374:432:44"},{"body":{"nativeSrc":"2897:281:44","nodeType":"YulBlock","src":"2897:281:44","statements":[{"body":{"nativeSrc":"2946:83:44","nodeType":"YulBlock","src":"2946:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:44","nodeType":"YulIdentifier","src":"2948:77:44"},"nativeSrc":"2948:79:44","nodeType":"YulFunctionCall","src":"2948:79:44"},"nativeSrc":"2948:79:44","nodeType":"YulExpressionStatement","src":"2948:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:44","nodeType":"YulIdentifier","src":"2925:6:44"},{"kind":"number","nativeSrc":"2933:4:44","nodeType":"YulLiteral","src":"2933:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:44","nodeType":"YulIdentifier","src":"2921:3:44"},"nativeSrc":"2921:17:44","nodeType":"YulFunctionCall","src":"2921:17:44"},{"name":"end","nativeSrc":"2940:3:44","nodeType":"YulIdentifier","src":"2940:3:44"}],"functionName":{"name":"slt","nativeSrc":"2917:3:44","nodeType":"YulIdentifier","src":"2917:3:44"},"nativeSrc":"2917:27:44","nodeType":"YulFunctionCall","src":"2917:27:44"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:44","nodeType":"YulIdentifier","src":"2910:6:44"},"nativeSrc":"2910:35:44","nodeType":"YulFunctionCall","src":"2910:35:44"},"nativeSrc":"2907:122:44","nodeType":"YulIf","src":"2907:122:44"},{"nativeSrc":"3038:27:44","nodeType":"YulVariableDeclaration","src":"3038:27:44","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:44","nodeType":"YulIdentifier","src":"3058:6:44"}],"functionName":{"name":"mload","nativeSrc":"3052:5:44","nodeType":"YulIdentifier","src":"3052:5:44"},"nativeSrc":"3052:13:44","nodeType":"YulFunctionCall","src":"3052:13:44"},"variables":[{"name":"length","nativeSrc":"3042:6:44","nodeType":"YulTypedName","src":"3042:6:44","type":""}]},{"nativeSrc":"3074:98:44","nodeType":"YulAssignment","src":"3074:98:44","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:44","nodeType":"YulIdentifier","src":"3145:6:44"},{"kind":"number","nativeSrc":"3153:4:44","nodeType":"YulLiteral","src":"3153:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:44","nodeType":"YulIdentifier","src":"3141:3:44"},"nativeSrc":"3141:17:44","nodeType":"YulFunctionCall","src":"3141:17:44"},{"name":"length","nativeSrc":"3160:6:44","nodeType":"YulIdentifier","src":"3160:6:44"},{"name":"end","nativeSrc":"3168:3:44","nodeType":"YulIdentifier","src":"3168:3:44"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:44","nodeType":"YulIdentifier","src":"3083:57:44"},"nativeSrc":"3083:89:44","nodeType":"YulFunctionCall","src":"3083:89:44"},"variableNames":[{"name":"array","nativeSrc":"3074:5:44","nodeType":"YulIdentifier","src":"3074:5:44"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:44","nodeType":"YulTypedName","src":"2875:6:44","type":""},{"name":"end","nativeSrc":"2883:3:44","nodeType":"YulTypedName","src":"2883:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:44","nodeType":"YulTypedName","src":"2891:5:44","type":""}],"src":"2825:353:44"},{"body":{"nativeSrc":"3287:575:44","nodeType":"YulBlock","src":"3287:575:44","statements":[{"body":{"nativeSrc":"3333:83:44","nodeType":"YulBlock","src":"3333:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3335:77:44","nodeType":"YulIdentifier","src":"3335:77:44"},"nativeSrc":"3335:79:44","nodeType":"YulFunctionCall","src":"3335:79:44"},"nativeSrc":"3335:79:44","nodeType":"YulExpressionStatement","src":"3335:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3308:7:44","nodeType":"YulIdentifier","src":"3308:7:44"},{"name":"headStart","nativeSrc":"3317:9:44","nodeType":"YulIdentifier","src":"3317:9:44"}],"functionName":{"name":"sub","nativeSrc":"3304:3:44","nodeType":"YulIdentifier","src":"3304:3:44"},"nativeSrc":"3304:23:44","nodeType":"YulFunctionCall","src":"3304:23:44"},{"kind":"number","nativeSrc":"3329:2:44","nodeType":"YulLiteral","src":"3329:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3300:3:44","nodeType":"YulIdentifier","src":"3300:3:44"},"nativeSrc":"3300:32:44","nodeType":"YulFunctionCall","src":"3300:32:44"},"nativeSrc":"3297:119:44","nodeType":"YulIf","src":"3297:119:44"},{"nativeSrc":"3426:128:44","nodeType":"YulBlock","src":"3426:128:44","statements":[{"nativeSrc":"3441:15:44","nodeType":"YulVariableDeclaration","src":"3441:15:44","value":{"kind":"number","nativeSrc":"3455:1:44","nodeType":"YulLiteral","src":"3455:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3445:6:44","nodeType":"YulTypedName","src":"3445:6:44","type":""}]},{"nativeSrc":"3470:74:44","nodeType":"YulAssignment","src":"3470:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3516:9:44","nodeType":"YulIdentifier","src":"3516:9:44"},{"name":"offset","nativeSrc":"3527:6:44","nodeType":"YulIdentifier","src":"3527:6:44"}],"functionName":{"name":"add","nativeSrc":"3512:3:44","nodeType":"YulIdentifier","src":"3512:3:44"},"nativeSrc":"3512:22:44","nodeType":"YulFunctionCall","src":"3512:22:44"},{"name":"dataEnd","nativeSrc":"3536:7:44","nodeType":"YulIdentifier","src":"3536:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3480:31:44","nodeType":"YulIdentifier","src":"3480:31:44"},"nativeSrc":"3480:64:44","nodeType":"YulFunctionCall","src":"3480:64:44"},"variableNames":[{"name":"value0","nativeSrc":"3470:6:44","nodeType":"YulIdentifier","src":"3470:6:44"}]}]},{"nativeSrc":"3564:291:44","nodeType":"YulBlock","src":"3564:291:44","statements":[{"nativeSrc":"3579:39:44","nodeType":"YulVariableDeclaration","src":"3579:39:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3603:9:44","nodeType":"YulIdentifier","src":"3603:9:44"},{"kind":"number","nativeSrc":"3614:2:44","nodeType":"YulLiteral","src":"3614:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3599:3:44","nodeType":"YulIdentifier","src":"3599:3:44"},"nativeSrc":"3599:18:44","nodeType":"YulFunctionCall","src":"3599:18:44"}],"functionName":{"name":"mload","nativeSrc":"3593:5:44","nodeType":"YulIdentifier","src":"3593:5:44"},"nativeSrc":"3593:25:44","nodeType":"YulFunctionCall","src":"3593:25:44"},"variables":[{"name":"offset","nativeSrc":"3583:6:44","nodeType":"YulTypedName","src":"3583:6:44","type":""}]},{"body":{"nativeSrc":"3665:83:44","nodeType":"YulBlock","src":"3665:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3667:77:44","nodeType":"YulIdentifier","src":"3667:77:44"},"nativeSrc":"3667:79:44","nodeType":"YulFunctionCall","src":"3667:79:44"},"nativeSrc":"3667:79:44","nodeType":"YulExpressionStatement","src":"3667:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3637:6:44","nodeType":"YulIdentifier","src":"3637:6:44"},{"kind":"number","nativeSrc":"3645:18:44","nodeType":"YulLiteral","src":"3645:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3634:2:44","nodeType":"YulIdentifier","src":"3634:2:44"},"nativeSrc":"3634:30:44","nodeType":"YulFunctionCall","src":"3634:30:44"},"nativeSrc":"3631:117:44","nodeType":"YulIf","src":"3631:117:44"},{"nativeSrc":"3762:83:44","nodeType":"YulAssignment","src":"3762:83:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:44","nodeType":"YulIdentifier","src":"3817:9:44"},{"name":"offset","nativeSrc":"3828:6:44","nodeType":"YulIdentifier","src":"3828:6:44"}],"functionName":{"name":"add","nativeSrc":"3813:3:44","nodeType":"YulIdentifier","src":"3813:3:44"},"nativeSrc":"3813:22:44","nodeType":"YulFunctionCall","src":"3813:22:44"},{"name":"dataEnd","nativeSrc":"3837:7:44","nodeType":"YulIdentifier","src":"3837:7:44"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3772:40:44","nodeType":"YulIdentifier","src":"3772:40:44"},"nativeSrc":"3772:73:44","nodeType":"YulFunctionCall","src":"3772:73:44"},"variableNames":[{"name":"value1","nativeSrc":"3762:6:44","nodeType":"YulIdentifier","src":"3762:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:678:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:44","nodeType":"YulTypedName","src":"3249:9:44","type":""},{"name":"dataEnd","nativeSrc":"3260:7:44","nodeType":"YulTypedName","src":"3260:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:44","nodeType":"YulTypedName","src":"3272:6:44","type":""},{"name":"value1","nativeSrc":"3280:6:44","nodeType":"YulTypedName","src":"3280:6:44","type":""}],"src":"3184:678:44"},{"body":{"nativeSrc":"3933:53:44","nodeType":"YulBlock","src":"3933:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3950:3:44","nodeType":"YulIdentifier","src":"3950:3:44"},{"arguments":[{"name":"value","nativeSrc":"3973:5:44","nodeType":"YulIdentifier","src":"3973:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3955:17:44","nodeType":"YulIdentifier","src":"3955:17:44"},"nativeSrc":"3955:24:44","nodeType":"YulFunctionCall","src":"3955:24:44"}],"functionName":{"name":"mstore","nativeSrc":"3943:6:44","nodeType":"YulIdentifier","src":"3943:6:44"},"nativeSrc":"3943:37:44","nodeType":"YulFunctionCall","src":"3943:37:44"},"nativeSrc":"3943:37:44","nodeType":"YulExpressionStatement","src":"3943:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3868:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3921:5:44","nodeType":"YulTypedName","src":"3921:5:44","type":""},{"name":"pos","nativeSrc":"3928:3:44","nodeType":"YulTypedName","src":"3928:3:44","type":""}],"src":"3868:118:44"},{"body":{"nativeSrc":"4090:124:44","nodeType":"YulBlock","src":"4090:124:44","statements":[{"nativeSrc":"4100:26:44","nodeType":"YulAssignment","src":"4100:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4112:9:44","nodeType":"YulIdentifier","src":"4112:9:44"},{"kind":"number","nativeSrc":"4123:2:44","nodeType":"YulLiteral","src":"4123:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4108:3:44","nodeType":"YulIdentifier","src":"4108:3:44"},"nativeSrc":"4108:18:44","nodeType":"YulFunctionCall","src":"4108:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4100:4:44","nodeType":"YulIdentifier","src":"4100:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4180:6:44","nodeType":"YulIdentifier","src":"4180:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4193:9:44","nodeType":"YulIdentifier","src":"4193:9:44"},{"kind":"number","nativeSrc":"4204:1:44","nodeType":"YulLiteral","src":"4204:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4189:3:44","nodeType":"YulIdentifier","src":"4189:3:44"},"nativeSrc":"4189:17:44","nodeType":"YulFunctionCall","src":"4189:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4136:43:44","nodeType":"YulIdentifier","src":"4136:43:44"},"nativeSrc":"4136:71:44","nodeType":"YulFunctionCall","src":"4136:71:44"},"nativeSrc":"4136:71:44","nodeType":"YulExpressionStatement","src":"4136:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3992:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4062:9:44","nodeType":"YulTypedName","src":"4062:9:44","type":""},{"name":"value0","nativeSrc":"4074:6:44","nodeType":"YulTypedName","src":"4074:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4085:4:44","nodeType":"YulTypedName","src":"4085:4:44","type":""}],"src":"3992:222:44"},{"body":{"nativeSrc":"4278:40:44","nodeType":"YulBlock","src":"4278:40:44","statements":[{"nativeSrc":"4289:22:44","nodeType":"YulAssignment","src":"4289:22:44","value":{"arguments":[{"name":"value","nativeSrc":"4305:5:44","nodeType":"YulIdentifier","src":"4305:5:44"}],"functionName":{"name":"mload","nativeSrc":"4299:5:44","nodeType":"YulIdentifier","src":"4299:5:44"},"nativeSrc":"4299:12:44","nodeType":"YulFunctionCall","src":"4299:12:44"},"variableNames":[{"name":"length","nativeSrc":"4289:6:44","nodeType":"YulIdentifier","src":"4289:6:44"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4220:98:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4261:5:44","nodeType":"YulTypedName","src":"4261:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4271:6:44","nodeType":"YulTypedName","src":"4271:6:44","type":""}],"src":"4220:98:44"},{"body":{"nativeSrc":"4437:34:44","nodeType":"YulBlock","src":"4437:34:44","statements":[{"nativeSrc":"4447:18:44","nodeType":"YulAssignment","src":"4447:18:44","value":{"name":"pos","nativeSrc":"4462:3:44","nodeType":"YulIdentifier","src":"4462:3:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"4447:11:44","nodeType":"YulIdentifier","src":"4447:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4324:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4409:3:44","nodeType":"YulTypedName","src":"4409:3:44","type":""},{"name":"length","nativeSrc":"4414:6:44","nodeType":"YulTypedName","src":"4414:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4425:11:44","nodeType":"YulTypedName","src":"4425:11:44","type":""}],"src":"4324:147:44"},{"body":{"nativeSrc":"4585:278:44","nodeType":"YulBlock","src":"4585:278:44","statements":[{"nativeSrc":"4595:52:44","nodeType":"YulVariableDeclaration","src":"4595:52:44","value":{"arguments":[{"name":"value","nativeSrc":"4641:5:44","nodeType":"YulIdentifier","src":"4641:5:44"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4609:31:44","nodeType":"YulIdentifier","src":"4609:31:44"},"nativeSrc":"4609:38:44","nodeType":"YulFunctionCall","src":"4609:38:44"},"variables":[{"name":"length","nativeSrc":"4599:6:44","nodeType":"YulTypedName","src":"4599:6:44","type":""}]},{"nativeSrc":"4656:95:44","nodeType":"YulAssignment","src":"4656:95:44","value":{"arguments":[{"name":"pos","nativeSrc":"4739:3:44","nodeType":"YulIdentifier","src":"4739:3:44"},{"name":"length","nativeSrc":"4744:6:44","nodeType":"YulIdentifier","src":"4744:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4663:75:44","nodeType":"YulIdentifier","src":"4663:75:44"},"nativeSrc":"4663:88:44","nodeType":"YulFunctionCall","src":"4663:88:44"},"variableNames":[{"name":"pos","nativeSrc":"4656:3:44","nodeType":"YulIdentifier","src":"4656:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4799:5:44","nodeType":"YulIdentifier","src":"4799:5:44"},{"kind":"number","nativeSrc":"4806:4:44","nodeType":"YulLiteral","src":"4806:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4795:3:44","nodeType":"YulIdentifier","src":"4795:3:44"},"nativeSrc":"4795:16:44","nodeType":"YulFunctionCall","src":"4795:16:44"},{"name":"pos","nativeSrc":"4813:3:44","nodeType":"YulIdentifier","src":"4813:3:44"},{"name":"length","nativeSrc":"4818:6:44","nodeType":"YulIdentifier","src":"4818:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4760:34:44","nodeType":"YulIdentifier","src":"4760:34:44"},"nativeSrc":"4760:65:44","nodeType":"YulFunctionCall","src":"4760:65:44"},"nativeSrc":"4760:65:44","nodeType":"YulExpressionStatement","src":"4760:65:44"},{"nativeSrc":"4834:23:44","nodeType":"YulAssignment","src":"4834:23:44","value":{"arguments":[{"name":"pos","nativeSrc":"4845:3:44","nodeType":"YulIdentifier","src":"4845:3:44"},{"name":"length","nativeSrc":"4850:6:44","nodeType":"YulIdentifier","src":"4850:6:44"}],"functionName":{"name":"add","nativeSrc":"4841:3:44","nodeType":"YulIdentifier","src":"4841:3:44"},"nativeSrc":"4841:16:44","nodeType":"YulFunctionCall","src":"4841:16:44"},"variableNames":[{"name":"end","nativeSrc":"4834:3:44","nodeType":"YulIdentifier","src":"4834:3:44"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4477:386:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4566:5:44","nodeType":"YulTypedName","src":"4566:5:44","type":""},{"name":"pos","nativeSrc":"4573:3:44","nodeType":"YulTypedName","src":"4573:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4581:3:44","nodeType":"YulTypedName","src":"4581:3:44","type":""}],"src":"4477:386:44"},{"body":{"nativeSrc":"5003:137:44","nodeType":"YulBlock","src":"5003:137:44","statements":[{"nativeSrc":"5014:100:44","nodeType":"YulAssignment","src":"5014:100:44","value":{"arguments":[{"name":"value0","nativeSrc":"5101:6:44","nodeType":"YulIdentifier","src":"5101:6:44"},{"name":"pos","nativeSrc":"5110:3:44","nodeType":"YulIdentifier","src":"5110:3:44"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5021:79:44","nodeType":"YulIdentifier","src":"5021:79:44"},"nativeSrc":"5021:93:44","nodeType":"YulFunctionCall","src":"5021:93:44"},"variableNames":[{"name":"pos","nativeSrc":"5014:3:44","nodeType":"YulIdentifier","src":"5014:3:44"}]},{"nativeSrc":"5124:10:44","nodeType":"YulAssignment","src":"5124:10:44","value":{"name":"pos","nativeSrc":"5131:3:44","nodeType":"YulIdentifier","src":"5131:3:44"},"variableNames":[{"name":"end","nativeSrc":"5124:3:44","nodeType":"YulIdentifier","src":"5124:3:44"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"4869:271:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4982:3:44","nodeType":"YulTypedName","src":"4982:3:44","type":""},{"name":"value0","nativeSrc":"4988:6:44","nodeType":"YulTypedName","src":"4988:6:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4999:3:44","nodeType":"YulTypedName","src":"4999:3:44","type":""}],"src":"4869:271:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function 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_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 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_bytes_memory_ptr_fromMemory(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_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_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_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526040516106e53803806106e583398181016040528101906100259190610512565b610035828261003c60201b60201c565b50506105f6565b61004b826100c160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156100ae576100a8828261019460201b60201c565b506100bd565b6100bc61021e60201b60201c565b5b5050565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361011d57806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610114919061057d565b60405180910390fd5b806101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61025b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516101be91906105df565b600060405180830381855af49150503d80600081146101f9576040519150601f19603f3d011682016040523d82523d6000602084013e6101fe565b606091505b509150915061021485838361026560201b60201c565b9250505092915050565b6000341115610259576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000819050919050565b6060826102805761027b826102fa60201b60201c565b6102f2565b600082511480156102a8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156102ea57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016102e1919061057d565b60405180910390fd5b8190506102f3565b5b9392505050565b60008151111561030d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061037e82610353565b9050919050565b61038e81610373565b811461039957600080fd5b50565b6000815190506103ab81610385565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610404826103bb565b810181811067ffffffffffffffff82111715610423576104226103cc565b5b80604052505050565b600061043661033f565b905061044282826103fb565b919050565b600067ffffffffffffffff821115610462576104616103cc565b5b61046b826103bb565b9050602081019050919050565b60005b8381101561049657808201518184015260208101905061047b565b60008484015250505050565b60006104b56104b084610447565b61042c565b9050828152602081018484840111156104d1576104d06103b6565b5b6104dc848285610478565b509392505050565b600082601f8301126104f9576104f86103b1565b5b81516105098482602086016104a2565b91505092915050565b6000806040838503121561052957610528610349565b5b60006105378582860161039c565b925050602083015167ffffffffffffffff8111156105585761055761034e565b5b610564858286016104e4565b9150509250929050565b61057781610373565b82525050565b6000602082019050610592600083018461056e565b92915050565b600081519050919050565b600081905092915050565b60006105b982610598565b6105c381856105a3565b93506105d3818560208601610478565b80840191505092915050565b60006105eb82846105ae565b915081905092915050565b60e1806106046000396000f3fe6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x6E5 CODESIZE SUB DUP1 PUSH2 0x6E5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x512 JUMP JUMPDEST PUSH2 0x35 DUP3 DUP3 PUSH2 0x3C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5F6 JUMP JUMPDEST PUSH2 0x4B DUP3 PUSH2 0xC1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xAE JUMPI PUSH2 0xA8 DUP3 DUP3 PUSH2 0x194 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0xBD JUMP JUMPDEST PUSH2 0xBC PUSH2 0x21E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x11D JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x150 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x25B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F9 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 0x1FE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x214 DUP6 DUP4 DUP4 PUSH2 0x265 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x259 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x280 JUMPI PUSH2 0x27B DUP3 PUSH2 0x2FA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x2A8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x2EA JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x57D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x2F3 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x30D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD6BDA27500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x37E DUP3 PUSH2 0x353 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x38E DUP2 PUSH2 0x373 JUMP JUMPDEST DUP2 EQ PUSH2 0x399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3AB DUP2 PUSH2 0x385 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x404 DUP3 PUSH2 0x3BB JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x423 JUMPI PUSH2 0x422 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x436 PUSH2 0x33F JUMP JUMPDEST SWAP1 POP PUSH2 0x442 DUP3 DUP3 PUSH2 0x3FB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x462 JUMPI PUSH2 0x461 PUSH2 0x3CC JUMP JUMPDEST JUMPDEST PUSH2 0x46B DUP3 PUSH2 0x3BB JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x496 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B5 PUSH2 0x4B0 DUP5 PUSH2 0x447 JUMP JUMPDEST PUSH2 0x42C JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0x3B6 JUMP JUMPDEST JUMPDEST PUSH2 0x4DC DUP5 DUP3 DUP6 PUSH2 0x478 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4F9 JUMPI PUSH2 0x4F8 PUSH2 0x3B1 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x509 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x529 JUMPI PUSH2 0x528 PUSH2 0x349 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x537 DUP6 DUP3 DUP7 ADD PUSH2 0x39C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x558 JUMPI PUSH2 0x557 PUSH2 0x34E JUMP JUMPDEST JUMPDEST PUSH2 0x564 DUP6 DUP3 DUP7 ADD PUSH2 0x4E4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x577 DUP2 PUSH2 0x373 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x592 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x56E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B9 DUP3 PUSH2 0x598 JUMP JUMPDEST PUSH2 0x5C3 DUP2 DUP6 PUSH2 0x5A3 JUMP JUMPDEST SWAP4 POP PUSH2 0x5D3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x478 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EB DUP3 DUP5 PUSH2 0x5AE JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE1 DUP1 PUSH2 0x604 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"600:1117:13:-:0;;;1081:133;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1155:52;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;600:1117;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:44;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:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:678::-;3272:6;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:64;3536:7;3527:6;3516:9;3512:22;3480:64;:::i;:::-;3470:74;;3426:128;3614:2;3603:9;3599:18;3593:25;3645:18;3637:6;3634:30;3631:117;;;3667:79;;:::i;:::-;3631:117;3772:73;3837:7;3828:6;3817:9;3813:22;3772:73;:::i;:::-;3762:83;;3564:291;3184:678;;;;;:::o;3868:118::-;3955:24;3973:5;3955:24;:::i;:::-;3950:3;3943:37;3868:118;;:::o;3992:222::-;4085:4;4123:2;4112:9;4108:18;4100:26;;4136:71;4204:1;4193:9;4189:17;4180:6;4136:71;:::i;:::-;3992:222;;;;:::o;4220:98::-;4271:6;4305:5;4299:12;4289:22;;4220:98;;;:::o;4324:147::-;4425:11;4462:3;4447:18;;4324:147;;;;:::o;4477:386::-;4581:3;4609:38;4641:5;4609:38;:::i;:::-;4663:88;4744:6;4739:3;4663:88;:::i;:::-;4656:95;;4760:65;4818:6;4813:3;4806:4;4799:5;4795:16;4760:65;:::i;:::-;4850:6;4845:3;4841:16;4834:23;;4585:278;4477:386;;;;:::o;4869:271::-;4999:3;5021:93;5110:3;5101:6;5021:93;:::i;:::-;5014:100;;5131:3;5124:10;;4869:271;;;;:::o;600:1117:13:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_2933":{"entryPoint":null,"id":2933,"parameterSlots":0,"returnSlots":0},"@_delegate_2909":{"entryPoint":39,"id":2909,"parameterSlots":1,"returnSlots":0},"@_fallback_2925":{"entryPoint":12,"id":2925,"parameterSlots":0,"returnSlots":0},"@_implementation_2603":{"entryPoint":26,"id":2603,"parameterSlots":0,"returnSlots":1},"@getAddressSlot_3643":{"entryPoint":161,"id":3643,"parameterSlots":1,"returnSlots":1},"@getImplementation_2650":{"entryPoint":76,"id":2650,"parameterSlots":0,"returnSlots":1}},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"6080604052600a600c565b005b60186014601a565b6027565b565b60006022604c565b905090565b3660008037600080366000845af43d6000803e80600081146047573d6000f35b3d6000fd5b600060787f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b60a1565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081905091905056fea2646970667358221220b4170c194e9d988c0e9644ddcd851116489bae39bfda2a51cd5b4761efc5b54564736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0xA PUSH1 0xC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x18 PUSH1 0x14 PUSH1 0x1A JUMP JUMPDEST PUSH1 0x27 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x22 PUSH1 0x4C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH1 0x47 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x78 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH1 0xA1 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB4 OR 0xC NOT 0x4E SWAP14 SWAP9 DUP13 0xE SWAP7 PREVRANDAO 0xDD 0xCD DUP6 GT AND BASEFEE SWAP12 0xAE CODECOPY 0xBF 0xDA 0x2A MLOAD 0xCD JUMPDEST SELFBALANCE PUSH2 0xEFC5 0xB5 GASLIMIT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"600:1117:13:-:0;;;2649:11:15;:9;:11::i;:::-;600:1117:13;2323:83:15;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583:132;:::o;949:895:15:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1441:138:14;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"ERC1967Utils":{"abi":[{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"ERC1967InvalidAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"beacon","type":"address"}],"name":"ERC1967InvalidBeacon","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033","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 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ","sourceMap":"496:5741:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122072012c67f02e4b595b28b6db1568ddc9806e945d2449c170c3d7ced5c3e8762464736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH19 0x12C67F02E4B595B28B6DB1568DDC9806E945D 0x24 BLOBHASH 0xC1 PUSH17 0xC3D7CED5C3E8762464736F6C634300081C STOP CALLER ","sourceMap":"496:5741:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidBeacon\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This library provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[ERC-1967] slots.\",\"errors\":{\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidBeacon(address)\":[{\"details\":\"The `beacon` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1.\"},\"BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is the keccak-256 hash of \\\"eip1967.proxy.beacon\\\" subtracted by 1.\"},\"IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":\"ERC1967Utils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {UpgradeableBeacon} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol":{"ProxyAdmin":{"abi":[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ITransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1622":{"entryPoint":null,"id":1622,"parameterSlots":1,"returnSlots":0},"@_2967":{"entryPoint":null,"id":2967,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_1718":{"entryPoint":187,"id":1718,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":461,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":527,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":542,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":420,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":388,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":383,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":438,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1551:44","nodeType":"YulBlock","src":"0:1551:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"922:274:44","nodeType":"YulBlock","src":"922:274:44","statements":[{"body":{"nativeSrc":"968:83:44","nodeType":"YulBlock","src":"968:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:44","nodeType":"YulIdentifier","src":"970:77:44"},"nativeSrc":"970:79:44","nodeType":"YulFunctionCall","src":"970:79:44"},"nativeSrc":"970:79:44","nodeType":"YulExpressionStatement","src":"970:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:44","nodeType":"YulIdentifier","src":"943:7:44"},{"name":"headStart","nativeSrc":"952:9:44","nodeType":"YulIdentifier","src":"952:9:44"}],"functionName":{"name":"sub","nativeSrc":"939:3:44","nodeType":"YulIdentifier","src":"939:3:44"},"nativeSrc":"939:23:44","nodeType":"YulFunctionCall","src":"939:23:44"},{"kind":"number","nativeSrc":"964:2:44","nodeType":"YulLiteral","src":"964:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:44","nodeType":"YulIdentifier","src":"935:3:44"},"nativeSrc":"935:32:44","nodeType":"YulFunctionCall","src":"935:32:44"},"nativeSrc":"932:119:44","nodeType":"YulIf","src":"932:119:44"},{"nativeSrc":"1061:128:44","nodeType":"YulBlock","src":"1061:128:44","statements":[{"nativeSrc":"1076:15:44","nodeType":"YulVariableDeclaration","src":"1076:15:44","value":{"kind":"number","nativeSrc":"1090:1:44","nodeType":"YulLiteral","src":"1090:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:44","nodeType":"YulTypedName","src":"1080:6:44","type":""}]},{"nativeSrc":"1105:74:44","nodeType":"YulAssignment","src":"1105:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:44","nodeType":"YulIdentifier","src":"1151:9:44"},{"name":"offset","nativeSrc":"1162:6:44","nodeType":"YulIdentifier","src":"1162:6:44"}],"functionName":{"name":"add","nativeSrc":"1147:3:44","nodeType":"YulIdentifier","src":"1147:3:44"},"nativeSrc":"1147:22:44","nodeType":"YulFunctionCall","src":"1147:22:44"},{"name":"dataEnd","nativeSrc":"1171:7:44","nodeType":"YulIdentifier","src":"1171:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:44","nodeType":"YulIdentifier","src":"1115:31:44"},"nativeSrc":"1115:64:44","nodeType":"YulFunctionCall","src":"1115:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:44","nodeType":"YulIdentifier","src":"1105:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:44","nodeType":"YulTypedName","src":"892:9:44","type":""},{"name":"dataEnd","nativeSrc":"903:7:44","nodeType":"YulTypedName","src":"903:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:44","nodeType":"YulTypedName","src":"915:6:44","type":""}],"src":"845:351:44"},{"body":{"nativeSrc":"1267:53:44","nodeType":"YulBlock","src":"1267:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1284:3:44","nodeType":"YulIdentifier","src":"1284:3:44"},{"arguments":[{"name":"value","nativeSrc":"1307:5:44","nodeType":"YulIdentifier","src":"1307:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1289:17:44","nodeType":"YulIdentifier","src":"1289:17:44"},"nativeSrc":"1289:24:44","nodeType":"YulFunctionCall","src":"1289:24:44"}],"functionName":{"name":"mstore","nativeSrc":"1277:6:44","nodeType":"YulIdentifier","src":"1277:6:44"},"nativeSrc":"1277:37:44","nodeType":"YulFunctionCall","src":"1277:37:44"},"nativeSrc":"1277:37:44","nodeType":"YulExpressionStatement","src":"1277:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1202:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1255:5:44","nodeType":"YulTypedName","src":"1255:5:44","type":""},{"name":"pos","nativeSrc":"1262:3:44","nodeType":"YulTypedName","src":"1262:3:44","type":""}],"src":"1202:118:44"},{"body":{"nativeSrc":"1424:124:44","nodeType":"YulBlock","src":"1424:124:44","statements":[{"nativeSrc":"1434:26:44","nodeType":"YulAssignment","src":"1434:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1446:9:44","nodeType":"YulIdentifier","src":"1446:9:44"},{"kind":"number","nativeSrc":"1457:2:44","nodeType":"YulLiteral","src":"1457:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1442:3:44","nodeType":"YulIdentifier","src":"1442:3:44"},"nativeSrc":"1442:18:44","nodeType":"YulFunctionCall","src":"1442:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1434:4:44","nodeType":"YulIdentifier","src":"1434:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1514:6:44","nodeType":"YulIdentifier","src":"1514:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1527:9:44","nodeType":"YulIdentifier","src":"1527:9:44"},{"kind":"number","nativeSrc":"1538:1:44","nodeType":"YulLiteral","src":"1538:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1523:3:44","nodeType":"YulIdentifier","src":"1523:3:44"},"nativeSrc":"1523:17:44","nodeType":"YulFunctionCall","src":"1523:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1470:43:44","nodeType":"YulIdentifier","src":"1470:43:44"},"nativeSrc":"1470:71:44","nodeType":"YulFunctionCall","src":"1470:71:44"},"nativeSrc":"1470:71:44","nodeType":"YulExpressionStatement","src":"1470:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1326:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1396:9:44","nodeType":"YulTypedName","src":"1396:9:44","type":""},{"name":"value0","nativeSrc":"1408:6:44","nodeType":"YulTypedName","src":"1408:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1419:4:44","nodeType":"YulTypedName","src":"1419:4:44","type":""}],"src":"1326:222:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 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 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 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 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF 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 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF 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 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ","sourceMap":"502:1462:17:-:0;;;1329:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1371:12;1297:1:8;1273:26;;:12;:26;;;1269:95;;1350:1;1322:31;;;;;;;;;;;:::i;:::-;;;;;;;;1269:95;1373:32;1392:12;1373:18;;;:32;;:::i;:::-;1225:187;1329:58:17;502:1462;;2912:187:8;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;88:117:44:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;1202:118::-;1289:24;1307:5;1289:24;:::i;:::-;1284:3;1277:37;1202:118;;:::o;1326:222::-;1419:4;1457:2;1446:9;1442:18;1434:26;;1470:71;1538:1;1527:9;1523:17;1514:6;1470:71;:::i;:::-;1326:222;;;;:::o;502:1462:17:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@UPGRADE_INTERFACE_VERSION_2957":{"entryPoint":441,"id":2957,"parameterSlots":0,"returnSlots":0},"@_checkOwner_1656":{"entryPoint":632,"id":1656,"parameterSlots":0,"returnSlots":0},"@_msgSender_3399":{"entryPoint":963,"id":3399,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_1718":{"entryPoint":767,"id":1718,"parameterSlots":1,"returnSlots":0},"@owner_1639":{"entryPoint":277,"id":1639,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_1670":{"entryPoint":257,"id":1670,"parameterSlots":0,"returnSlots":0},"@transferOwnership_1698":{"entryPoint":498,"id":1698,"parameterSlots":1,"returnSlots":0},"@upgradeAndCall_2991":{"entryPoint":318,"id":2991,"parameterSlots":3,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1403,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":1168,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1469,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014":{"entryPoint":1124,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1787,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3014t_addresst_bytes_memory_ptr":{"entryPoint":1515,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1021,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1860,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":1696,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1036,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":1917,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1753,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1312,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1063,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1339,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1832,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":1626,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":1843,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":1637,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1003,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_ITransparentUpgradeableProxy_$3014":{"entryPoint":1083,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":971,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1388,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1654,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1263,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1216,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1189,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1194,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1078,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1073,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1199,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1145,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014":{"entryPoint":1101,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:7495:44","nodeType":"YulBlock","src":"0:7495:44","statements":[{"body":{"nativeSrc":"52:81:44","nodeType":"YulBlock","src":"52:81:44","statements":[{"nativeSrc":"62:65:44","nodeType":"YulAssignment","src":"62:65:44","value":{"arguments":[{"name":"value","nativeSrc":"77:5:44","nodeType":"YulIdentifier","src":"77:5:44"},{"kind":"number","nativeSrc":"84:42:44","nodeType":"YulLiteral","src":"84:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:44","nodeType":"YulIdentifier","src":"73:3:44"},"nativeSrc":"73:54:44","nodeType":"YulFunctionCall","src":"73:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:44","nodeType":"YulIdentifier","src":"62:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"7:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:44","nodeType":"YulTypedName","src":"34:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:44","nodeType":"YulTypedName","src":"44:7:44","type":""}],"src":"7:126:44"},{"body":{"nativeSrc":"184:51:44","nodeType":"YulBlock","src":"184:51:44","statements":[{"nativeSrc":"194:35:44","nodeType":"YulAssignment","src":"194:35:44","value":{"arguments":[{"name":"value","nativeSrc":"223:5:44","nodeType":"YulIdentifier","src":"223:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"205:17:44","nodeType":"YulIdentifier","src":"205:17:44"},"nativeSrc":"205:24:44","nodeType":"YulFunctionCall","src":"205:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"194:7:44","nodeType":"YulIdentifier","src":"194:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"139:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"166:5:44","nodeType":"YulTypedName","src":"166:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"176:7:44","nodeType":"YulTypedName","src":"176:7:44","type":""}],"src":"139:96:44"},{"body":{"nativeSrc":"306:53:44","nodeType":"YulBlock","src":"306:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"323:3:44","nodeType":"YulIdentifier","src":"323:3:44"},{"arguments":[{"name":"value","nativeSrc":"346:5:44","nodeType":"YulIdentifier","src":"346:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"328:17:44","nodeType":"YulIdentifier","src":"328:17:44"},"nativeSrc":"328:24:44","nodeType":"YulFunctionCall","src":"328:24:44"}],"functionName":{"name":"mstore","nativeSrc":"316:6:44","nodeType":"YulIdentifier","src":"316:6:44"},"nativeSrc":"316:37:44","nodeType":"YulFunctionCall","src":"316:37:44"},"nativeSrc":"316:37:44","nodeType":"YulExpressionStatement","src":"316:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"241:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"294:5:44","nodeType":"YulTypedName","src":"294:5:44","type":""},{"name":"pos","nativeSrc":"301:3:44","nodeType":"YulTypedName","src":"301:3:44","type":""}],"src":"241:118:44"},{"body":{"nativeSrc":"463:124:44","nodeType":"YulBlock","src":"463:124:44","statements":[{"nativeSrc":"473:26:44","nodeType":"YulAssignment","src":"473:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"485:9:44","nodeType":"YulIdentifier","src":"485:9:44"},{"kind":"number","nativeSrc":"496:2:44","nodeType":"YulLiteral","src":"496:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"481:3:44","nodeType":"YulIdentifier","src":"481:3:44"},"nativeSrc":"481:18:44","nodeType":"YulFunctionCall","src":"481:18:44"},"variableNames":[{"name":"tail","nativeSrc":"473:4:44","nodeType":"YulIdentifier","src":"473:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"553:6:44","nodeType":"YulIdentifier","src":"553:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"566:9:44","nodeType":"YulIdentifier","src":"566:9:44"},{"kind":"number","nativeSrc":"577:1:44","nodeType":"YulLiteral","src":"577:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"562:3:44","nodeType":"YulIdentifier","src":"562:3:44"},"nativeSrc":"562:17:44","nodeType":"YulFunctionCall","src":"562:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"509:43:44","nodeType":"YulIdentifier","src":"509:43:44"},"nativeSrc":"509:71:44","nodeType":"YulFunctionCall","src":"509:71:44"},"nativeSrc":"509:71:44","nodeType":"YulExpressionStatement","src":"509:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"365:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"435:9:44","nodeType":"YulTypedName","src":"435:9:44","type":""},{"name":"value0","nativeSrc":"447:6:44","nodeType":"YulTypedName","src":"447:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"458:4:44","nodeType":"YulTypedName","src":"458:4:44","type":""}],"src":"365:222:44"},{"body":{"nativeSrc":"633:35:44","nodeType":"YulBlock","src":"633:35:44","statements":[{"nativeSrc":"643:19:44","nodeType":"YulAssignment","src":"643:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"659:2:44","nodeType":"YulLiteral","src":"659:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"653:5:44","nodeType":"YulIdentifier","src":"653:5:44"},"nativeSrc":"653:9:44","nodeType":"YulFunctionCall","src":"653:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"643:6:44","nodeType":"YulIdentifier","src":"643:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"593:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"626:6:44","nodeType":"YulTypedName","src":"626:6:44","type":""}],"src":"593:75:44"},{"body":{"nativeSrc":"763:28:44","nodeType":"YulBlock","src":"763:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"780:1:44","nodeType":"YulLiteral","src":"780:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"783:1:44","nodeType":"YulLiteral","src":"783:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"773:6:44","nodeType":"YulIdentifier","src":"773:6:44"},"nativeSrc":"773:12:44","nodeType":"YulFunctionCall","src":"773:12:44"},"nativeSrc":"773:12:44","nodeType":"YulExpressionStatement","src":"773:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"674:117:44","nodeType":"YulFunctionDefinition","src":"674:117:44"},{"body":{"nativeSrc":"886:28:44","nodeType":"YulBlock","src":"886:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"903:1:44","nodeType":"YulLiteral","src":"903:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"906:1:44","nodeType":"YulLiteral","src":"906:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"896:6:44","nodeType":"YulIdentifier","src":"896:6:44"},"nativeSrc":"896:12:44","nodeType":"YulFunctionCall","src":"896:12:44"},"nativeSrc":"896:12:44","nodeType":"YulExpressionStatement","src":"896:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"797:117:44","nodeType":"YulFunctionDefinition","src":"797:117:44"},{"body":{"nativeSrc":"1002:51:44","nodeType":"YulBlock","src":"1002:51:44","statements":[{"nativeSrc":"1012:35:44","nodeType":"YulAssignment","src":"1012:35:44","value":{"arguments":[{"name":"value","nativeSrc":"1041:5:44","nodeType":"YulIdentifier","src":"1041:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1023:17:44","nodeType":"YulIdentifier","src":"1023:17:44"},"nativeSrc":"1023:24:44","nodeType":"YulFunctionCall","src":"1023:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1012:7:44","nodeType":"YulIdentifier","src":"1012:7:44"}]}]},"name":"cleanup_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"920:133:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"984:5:44","nodeType":"YulTypedName","src":"984:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"994:7:44","nodeType":"YulTypedName","src":"994:7:44","type":""}],"src":"920:133:44"},{"body":{"nativeSrc":"1139:116:44","nodeType":"YulBlock","src":"1139:116:44","statements":[{"body":{"nativeSrc":"1233:16:44","nodeType":"YulBlock","src":"1233:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1242:1:44","nodeType":"YulLiteral","src":"1242:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1245:1:44","nodeType":"YulLiteral","src":"1245:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1235:6:44","nodeType":"YulIdentifier","src":"1235:6:44"},"nativeSrc":"1235:12:44","nodeType":"YulFunctionCall","src":"1235:12:44"},"nativeSrc":"1235:12:44","nodeType":"YulExpressionStatement","src":"1235:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1162:5:44","nodeType":"YulIdentifier","src":"1162:5:44"},{"arguments":[{"name":"value","nativeSrc":"1224:5:44","nodeType":"YulIdentifier","src":"1224:5:44"}],"functionName":{"name":"cleanup_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"1169:54:44","nodeType":"YulIdentifier","src":"1169:54:44"},"nativeSrc":"1169:61:44","nodeType":"YulFunctionCall","src":"1169:61:44"}],"functionName":{"name":"eq","nativeSrc":"1159:2:44","nodeType":"YulIdentifier","src":"1159:2:44"},"nativeSrc":"1159:72:44","nodeType":"YulFunctionCall","src":"1159:72:44"}],"functionName":{"name":"iszero","nativeSrc":"1152:6:44","nodeType":"YulIdentifier","src":"1152:6:44"},"nativeSrc":"1152:80:44","nodeType":"YulFunctionCall","src":"1152:80:44"},"nativeSrc":"1149:100:44","nodeType":"YulIf","src":"1149:100:44"}]},"name":"validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"1059:196:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1132:5:44","nodeType":"YulTypedName","src":"1132:5:44","type":""}],"src":"1059:196:44"},{"body":{"nativeSrc":"1350:124:44","nodeType":"YulBlock","src":"1350:124:44","statements":[{"nativeSrc":"1360:29:44","nodeType":"YulAssignment","src":"1360:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1382:6:44","nodeType":"YulIdentifier","src":"1382:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1369:12:44","nodeType":"YulIdentifier","src":"1369:12:44"},"nativeSrc":"1369:20:44","nodeType":"YulFunctionCall","src":"1369:20:44"},"variableNames":[{"name":"value","nativeSrc":"1360:5:44","nodeType":"YulIdentifier","src":"1360:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1462:5:44","nodeType":"YulIdentifier","src":"1462:5:44"}],"functionName":{"name":"validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"1398:63:44","nodeType":"YulIdentifier","src":"1398:63:44"},"nativeSrc":"1398:70:44","nodeType":"YulFunctionCall","src":"1398:70:44"},"nativeSrc":"1398:70:44","nodeType":"YulExpressionStatement","src":"1398:70:44"}]},"name":"abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"1261:213:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1328:6:44","nodeType":"YulTypedName","src":"1328:6:44","type":""},{"name":"end","nativeSrc":"1336:3:44","nodeType":"YulTypedName","src":"1336:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1344:5:44","nodeType":"YulTypedName","src":"1344:5:44","type":""}],"src":"1261:213:44"},{"body":{"nativeSrc":"1523:79:44","nodeType":"YulBlock","src":"1523:79:44","statements":[{"body":{"nativeSrc":"1580:16:44","nodeType":"YulBlock","src":"1580:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1589:1:44","nodeType":"YulLiteral","src":"1589:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1592:1:44","nodeType":"YulLiteral","src":"1592:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1582:6:44","nodeType":"YulIdentifier","src":"1582:6:44"},"nativeSrc":"1582:12:44","nodeType":"YulFunctionCall","src":"1582:12:44"},"nativeSrc":"1582:12:44","nodeType":"YulExpressionStatement","src":"1582:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1546:5:44","nodeType":"YulIdentifier","src":"1546:5:44"},{"arguments":[{"name":"value","nativeSrc":"1571:5:44","nodeType":"YulIdentifier","src":"1571:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1553:17:44","nodeType":"YulIdentifier","src":"1553:17:44"},"nativeSrc":"1553:24:44","nodeType":"YulFunctionCall","src":"1553:24:44"}],"functionName":{"name":"eq","nativeSrc":"1543:2:44","nodeType":"YulIdentifier","src":"1543:2:44"},"nativeSrc":"1543:35:44","nodeType":"YulFunctionCall","src":"1543:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1536:6:44","nodeType":"YulIdentifier","src":"1536:6:44"},"nativeSrc":"1536:43:44","nodeType":"YulFunctionCall","src":"1536:43:44"},"nativeSrc":"1533:63:44","nodeType":"YulIf","src":"1533:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"1480:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1516:5:44","nodeType":"YulTypedName","src":"1516:5:44","type":""}],"src":"1480:122:44"},{"body":{"nativeSrc":"1660:87:44","nodeType":"YulBlock","src":"1660:87:44","statements":[{"nativeSrc":"1670:29:44","nodeType":"YulAssignment","src":"1670:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1692:6:44","nodeType":"YulIdentifier","src":"1692:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1679:12:44","nodeType":"YulIdentifier","src":"1679:12:44"},"nativeSrc":"1679:20:44","nodeType":"YulFunctionCall","src":"1679:20:44"},"variableNames":[{"name":"value","nativeSrc":"1670:5:44","nodeType":"YulIdentifier","src":"1670:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1735:5:44","nodeType":"YulIdentifier","src":"1735:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1708:26:44","nodeType":"YulIdentifier","src":"1708:26:44"},"nativeSrc":"1708:33:44","nodeType":"YulFunctionCall","src":"1708:33:44"},"nativeSrc":"1708:33:44","nodeType":"YulExpressionStatement","src":"1708:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"1608:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1638:6:44","nodeType":"YulTypedName","src":"1638:6:44","type":""},{"name":"end","nativeSrc":"1646:3:44","nodeType":"YulTypedName","src":"1646:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1654:5:44","nodeType":"YulTypedName","src":"1654:5:44","type":""}],"src":"1608:139:44"},{"body":{"nativeSrc":"1842:28:44","nodeType":"YulBlock","src":"1842:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1859:1:44","nodeType":"YulLiteral","src":"1859:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1862:1:44","nodeType":"YulLiteral","src":"1862:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1852:6:44","nodeType":"YulIdentifier","src":"1852:6:44"},"nativeSrc":"1852:12:44","nodeType":"YulFunctionCall","src":"1852:12:44"},"nativeSrc":"1852:12:44","nodeType":"YulExpressionStatement","src":"1852:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1753:117:44","nodeType":"YulFunctionDefinition","src":"1753:117:44"},{"body":{"nativeSrc":"1965:28:44","nodeType":"YulBlock","src":"1965:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1982:1:44","nodeType":"YulLiteral","src":"1982:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1985:1:44","nodeType":"YulLiteral","src":"1985:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1975:6:44","nodeType":"YulIdentifier","src":"1975:6:44"},"nativeSrc":"1975:12:44","nodeType":"YulFunctionCall","src":"1975:12:44"},"nativeSrc":"1975:12:44","nodeType":"YulExpressionStatement","src":"1975:12:44"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1876:117:44","nodeType":"YulFunctionDefinition","src":"1876:117:44"},{"body":{"nativeSrc":"2047:54:44","nodeType":"YulBlock","src":"2047:54:44","statements":[{"nativeSrc":"2057:38:44","nodeType":"YulAssignment","src":"2057:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2075:5:44","nodeType":"YulIdentifier","src":"2075:5:44"},{"kind":"number","nativeSrc":"2082:2:44","nodeType":"YulLiteral","src":"2082:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2071:3:44","nodeType":"YulIdentifier","src":"2071:3:44"},"nativeSrc":"2071:14:44","nodeType":"YulFunctionCall","src":"2071:14:44"},{"arguments":[{"kind":"number","nativeSrc":"2091:2:44","nodeType":"YulLiteral","src":"2091:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2087:3:44","nodeType":"YulIdentifier","src":"2087:3:44"},"nativeSrc":"2087:7:44","nodeType":"YulFunctionCall","src":"2087:7:44"}],"functionName":{"name":"and","nativeSrc":"2067:3:44","nodeType":"YulIdentifier","src":"2067:3:44"},"nativeSrc":"2067:28:44","nodeType":"YulFunctionCall","src":"2067:28:44"},"variableNames":[{"name":"result","nativeSrc":"2057:6:44","nodeType":"YulIdentifier","src":"2057:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1999:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2030:5:44","nodeType":"YulTypedName","src":"2030:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"2040:6:44","nodeType":"YulTypedName","src":"2040:6:44","type":""}],"src":"1999:102:44"},{"body":{"nativeSrc":"2135:152:44","nodeType":"YulBlock","src":"2135:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2152:1:44","nodeType":"YulLiteral","src":"2152:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2155:77:44","nodeType":"YulLiteral","src":"2155:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2145:6:44","nodeType":"YulIdentifier","src":"2145:6:44"},"nativeSrc":"2145:88:44","nodeType":"YulFunctionCall","src":"2145:88:44"},"nativeSrc":"2145:88:44","nodeType":"YulExpressionStatement","src":"2145:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2249:1:44","nodeType":"YulLiteral","src":"2249:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"2252:4:44","nodeType":"YulLiteral","src":"2252:4:44","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2242:6:44","nodeType":"YulIdentifier","src":"2242:6:44"},"nativeSrc":"2242:15:44","nodeType":"YulFunctionCall","src":"2242:15:44"},"nativeSrc":"2242:15:44","nodeType":"YulExpressionStatement","src":"2242:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2273:1:44","nodeType":"YulLiteral","src":"2273:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2276:4:44","nodeType":"YulLiteral","src":"2276:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2266:6:44","nodeType":"YulIdentifier","src":"2266:6:44"},"nativeSrc":"2266:15:44","nodeType":"YulFunctionCall","src":"2266:15:44"},"nativeSrc":"2266:15:44","nodeType":"YulExpressionStatement","src":"2266:15:44"}]},"name":"panic_error_0x41","nativeSrc":"2107:180:44","nodeType":"YulFunctionDefinition","src":"2107:180:44"},{"body":{"nativeSrc":"2336:238:44","nodeType":"YulBlock","src":"2336:238:44","statements":[{"nativeSrc":"2346:58:44","nodeType":"YulVariableDeclaration","src":"2346:58:44","value":{"arguments":[{"name":"memPtr","nativeSrc":"2368:6:44","nodeType":"YulIdentifier","src":"2368:6:44"},{"arguments":[{"name":"size","nativeSrc":"2398:4:44","nodeType":"YulIdentifier","src":"2398:4:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2376:21:44","nodeType":"YulIdentifier","src":"2376:21:44"},"nativeSrc":"2376:27:44","nodeType":"YulFunctionCall","src":"2376:27:44"}],"functionName":{"name":"add","nativeSrc":"2364:3:44","nodeType":"YulIdentifier","src":"2364:3:44"},"nativeSrc":"2364:40:44","nodeType":"YulFunctionCall","src":"2364:40:44"},"variables":[{"name":"newFreePtr","nativeSrc":"2350:10:44","nodeType":"YulTypedName","src":"2350:10:44","type":""}]},{"body":{"nativeSrc":"2515:22:44","nodeType":"YulBlock","src":"2515:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2517:16:44","nodeType":"YulIdentifier","src":"2517:16:44"},"nativeSrc":"2517:18:44","nodeType":"YulFunctionCall","src":"2517:18:44"},"nativeSrc":"2517:18:44","nodeType":"YulExpressionStatement","src":"2517:18:44"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2458:10:44","nodeType":"YulIdentifier","src":"2458:10:44"},{"kind":"number","nativeSrc":"2470:18:44","nodeType":"YulLiteral","src":"2470:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2455:2:44","nodeType":"YulIdentifier","src":"2455:2:44"},"nativeSrc":"2455:34:44","nodeType":"YulFunctionCall","src":"2455:34:44"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2494:10:44","nodeType":"YulIdentifier","src":"2494:10:44"},{"name":"memPtr","nativeSrc":"2506:6:44","nodeType":"YulIdentifier","src":"2506:6:44"}],"functionName":{"name":"lt","nativeSrc":"2491:2:44","nodeType":"YulIdentifier","src":"2491:2:44"},"nativeSrc":"2491:22:44","nodeType":"YulFunctionCall","src":"2491:22:44"}],"functionName":{"name":"or","nativeSrc":"2452:2:44","nodeType":"YulIdentifier","src":"2452:2:44"},"nativeSrc":"2452:62:44","nodeType":"YulFunctionCall","src":"2452:62:44"},"nativeSrc":"2449:88:44","nodeType":"YulIf","src":"2449:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2553:2:44","nodeType":"YulLiteral","src":"2553:2:44","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2557:10:44","nodeType":"YulIdentifier","src":"2557:10:44"}],"functionName":{"name":"mstore","nativeSrc":"2546:6:44","nodeType":"YulIdentifier","src":"2546:6:44"},"nativeSrc":"2546:22:44","nodeType":"YulFunctionCall","src":"2546:22:44"},"nativeSrc":"2546:22:44","nodeType":"YulExpressionStatement","src":"2546:22:44"}]},"name":"finalize_allocation","nativeSrc":"2293:281:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2322:6:44","nodeType":"YulTypedName","src":"2322:6:44","type":""},{"name":"size","nativeSrc":"2330:4:44","nodeType":"YulTypedName","src":"2330:4:44","type":""}],"src":"2293:281:44"},{"body":{"nativeSrc":"2621:88:44","nodeType":"YulBlock","src":"2621:88:44","statements":[{"nativeSrc":"2631:30:44","nodeType":"YulAssignment","src":"2631:30:44","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2641:18:44","nodeType":"YulIdentifier","src":"2641:18:44"},"nativeSrc":"2641:20:44","nodeType":"YulFunctionCall","src":"2641:20:44"},"variableNames":[{"name":"memPtr","nativeSrc":"2631:6:44","nodeType":"YulIdentifier","src":"2631:6:44"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2690:6:44","nodeType":"YulIdentifier","src":"2690:6:44"},{"name":"size","nativeSrc":"2698:4:44","nodeType":"YulIdentifier","src":"2698:4:44"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2670:19:44","nodeType":"YulIdentifier","src":"2670:19:44"},"nativeSrc":"2670:33:44","nodeType":"YulFunctionCall","src":"2670:33:44"},"nativeSrc":"2670:33:44","nodeType":"YulExpressionStatement","src":"2670:33:44"}]},"name":"allocate_memory","nativeSrc":"2580:129:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2605:4:44","nodeType":"YulTypedName","src":"2605:4:44","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2614:6:44","nodeType":"YulTypedName","src":"2614:6:44","type":""}],"src":"2580:129:44"},{"body":{"nativeSrc":"2781:241:44","nodeType":"YulBlock","src":"2781:241:44","statements":[{"body":{"nativeSrc":"2886:22:44","nodeType":"YulBlock","src":"2886:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2888:16:44","nodeType":"YulIdentifier","src":"2888:16:44"},"nativeSrc":"2888:18:44","nodeType":"YulFunctionCall","src":"2888:18:44"},"nativeSrc":"2888:18:44","nodeType":"YulExpressionStatement","src":"2888:18:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2858:6:44","nodeType":"YulIdentifier","src":"2858:6:44"},{"kind":"number","nativeSrc":"2866:18:44","nodeType":"YulLiteral","src":"2866:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2855:2:44","nodeType":"YulIdentifier","src":"2855:2:44"},"nativeSrc":"2855:30:44","nodeType":"YulFunctionCall","src":"2855:30:44"},"nativeSrc":"2852:56:44","nodeType":"YulIf","src":"2852:56:44"},{"nativeSrc":"2918:37:44","nodeType":"YulAssignment","src":"2918:37:44","value":{"arguments":[{"name":"length","nativeSrc":"2948:6:44","nodeType":"YulIdentifier","src":"2948:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2926:21:44","nodeType":"YulIdentifier","src":"2926:21:44"},"nativeSrc":"2926:29:44","nodeType":"YulFunctionCall","src":"2926:29:44"},"variableNames":[{"name":"size","nativeSrc":"2918:4:44","nodeType":"YulIdentifier","src":"2918:4:44"}]},{"nativeSrc":"2992:23:44","nodeType":"YulAssignment","src":"2992:23:44","value":{"arguments":[{"name":"size","nativeSrc":"3004:4:44","nodeType":"YulIdentifier","src":"3004:4:44"},{"kind":"number","nativeSrc":"3010:4:44","nodeType":"YulLiteral","src":"3010:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3000:3:44","nodeType":"YulIdentifier","src":"3000:3:44"},"nativeSrc":"3000:15:44","nodeType":"YulFunctionCall","src":"3000:15:44"},"variableNames":[{"name":"size","nativeSrc":"2992:4:44","nodeType":"YulIdentifier","src":"2992:4:44"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2715:307:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2765:6:44","nodeType":"YulTypedName","src":"2765:6:44","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2776:4:44","nodeType":"YulTypedName","src":"2776:4:44","type":""}],"src":"2715:307:44"},{"body":{"nativeSrc":"3092:84:44","nodeType":"YulBlock","src":"3092:84:44","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3116:3:44","nodeType":"YulIdentifier","src":"3116:3:44"},{"name":"src","nativeSrc":"3121:3:44","nodeType":"YulIdentifier","src":"3121:3:44"},{"name":"length","nativeSrc":"3126:6:44","nodeType":"YulIdentifier","src":"3126:6:44"}],"functionName":{"name":"calldatacopy","nativeSrc":"3103:12:44","nodeType":"YulIdentifier","src":"3103:12:44"},"nativeSrc":"3103:30:44","nodeType":"YulFunctionCall","src":"3103:30:44"},"nativeSrc":"3103:30:44","nodeType":"YulExpressionStatement","src":"3103:30:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3153:3:44","nodeType":"YulIdentifier","src":"3153:3:44"},{"name":"length","nativeSrc":"3158:6:44","nodeType":"YulIdentifier","src":"3158:6:44"}],"functionName":{"name":"add","nativeSrc":"3149:3:44","nodeType":"YulIdentifier","src":"3149:3:44"},"nativeSrc":"3149:16:44","nodeType":"YulFunctionCall","src":"3149:16:44"},{"kind":"number","nativeSrc":"3167:1:44","nodeType":"YulLiteral","src":"3167:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3142:6:44","nodeType":"YulIdentifier","src":"3142:6:44"},"nativeSrc":"3142:27:44","nodeType":"YulFunctionCall","src":"3142:27:44"},"nativeSrc":"3142:27:44","nodeType":"YulExpressionStatement","src":"3142:27:44"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3028:148:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3074:3:44","nodeType":"YulTypedName","src":"3074:3:44","type":""},{"name":"dst","nativeSrc":"3079:3:44","nodeType":"YulTypedName","src":"3079:3:44","type":""},{"name":"length","nativeSrc":"3084:6:44","nodeType":"YulTypedName","src":"3084:6:44","type":""}],"src":"3028:148:44"},{"body":{"nativeSrc":"3265:340:44","nodeType":"YulBlock","src":"3265:340:44","statements":[{"nativeSrc":"3275:74:44","nodeType":"YulAssignment","src":"3275:74:44","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3341:6:44","nodeType":"YulIdentifier","src":"3341:6:44"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3300:40:44","nodeType":"YulIdentifier","src":"3300:40:44"},"nativeSrc":"3300:48:44","nodeType":"YulFunctionCall","src":"3300:48:44"}],"functionName":{"name":"allocate_memory","nativeSrc":"3284:15:44","nodeType":"YulIdentifier","src":"3284:15:44"},"nativeSrc":"3284:65:44","nodeType":"YulFunctionCall","src":"3284:65:44"},"variableNames":[{"name":"array","nativeSrc":"3275:5:44","nodeType":"YulIdentifier","src":"3275:5:44"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3365:5:44","nodeType":"YulIdentifier","src":"3365:5:44"},{"name":"length","nativeSrc":"3372:6:44","nodeType":"YulIdentifier","src":"3372:6:44"}],"functionName":{"name":"mstore","nativeSrc":"3358:6:44","nodeType":"YulIdentifier","src":"3358:6:44"},"nativeSrc":"3358:21:44","nodeType":"YulFunctionCall","src":"3358:21:44"},"nativeSrc":"3358:21:44","nodeType":"YulExpressionStatement","src":"3358:21:44"},{"nativeSrc":"3388:27:44","nodeType":"YulVariableDeclaration","src":"3388:27:44","value":{"arguments":[{"name":"array","nativeSrc":"3403:5:44","nodeType":"YulIdentifier","src":"3403:5:44"},{"kind":"number","nativeSrc":"3410:4:44","nodeType":"YulLiteral","src":"3410:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3399:3:44","nodeType":"YulIdentifier","src":"3399:3:44"},"nativeSrc":"3399:16:44","nodeType":"YulFunctionCall","src":"3399:16:44"},"variables":[{"name":"dst","nativeSrc":"3392:3:44","nodeType":"YulTypedName","src":"3392:3:44","type":""}]},{"body":{"nativeSrc":"3453:83:44","nodeType":"YulBlock","src":"3453:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3455:77:44","nodeType":"YulIdentifier","src":"3455:77:44"},"nativeSrc":"3455:79:44","nodeType":"YulFunctionCall","src":"3455:79:44"},"nativeSrc":"3455:79:44","nodeType":"YulExpressionStatement","src":"3455:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3434:3:44","nodeType":"YulIdentifier","src":"3434:3:44"},{"name":"length","nativeSrc":"3439:6:44","nodeType":"YulIdentifier","src":"3439:6:44"}],"functionName":{"name":"add","nativeSrc":"3430:3:44","nodeType":"YulIdentifier","src":"3430:3:44"},"nativeSrc":"3430:16:44","nodeType":"YulFunctionCall","src":"3430:16:44"},{"name":"end","nativeSrc":"3448:3:44","nodeType":"YulIdentifier","src":"3448:3:44"}],"functionName":{"name":"gt","nativeSrc":"3427:2:44","nodeType":"YulIdentifier","src":"3427:2:44"},"nativeSrc":"3427:25:44","nodeType":"YulFunctionCall","src":"3427:25:44"},"nativeSrc":"3424:112:44","nodeType":"YulIf","src":"3424:112:44"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3582:3:44","nodeType":"YulIdentifier","src":"3582:3:44"},{"name":"dst","nativeSrc":"3587:3:44","nodeType":"YulIdentifier","src":"3587:3:44"},{"name":"length","nativeSrc":"3592:6:44","nodeType":"YulIdentifier","src":"3592:6:44"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3545:36:44","nodeType":"YulIdentifier","src":"3545:36:44"},"nativeSrc":"3545:54:44","nodeType":"YulFunctionCall","src":"3545:54:44"},"nativeSrc":"3545:54:44","nodeType":"YulExpressionStatement","src":"3545:54:44"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3182:423:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3238:3:44","nodeType":"YulTypedName","src":"3238:3:44","type":""},{"name":"length","nativeSrc":"3243:6:44","nodeType":"YulTypedName","src":"3243:6:44","type":""},{"name":"end","nativeSrc":"3251:3:44","nodeType":"YulTypedName","src":"3251:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3259:5:44","nodeType":"YulTypedName","src":"3259:5:44","type":""}],"src":"3182:423:44"},{"body":{"nativeSrc":"3685:277:44","nodeType":"YulBlock","src":"3685:277:44","statements":[{"body":{"nativeSrc":"3734:83:44","nodeType":"YulBlock","src":"3734:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3736:77:44","nodeType":"YulIdentifier","src":"3736:77:44"},"nativeSrc":"3736:79:44","nodeType":"YulFunctionCall","src":"3736:79:44"},"nativeSrc":"3736:79:44","nodeType":"YulExpressionStatement","src":"3736:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3713:6:44","nodeType":"YulIdentifier","src":"3713:6:44"},{"kind":"number","nativeSrc":"3721:4:44","nodeType":"YulLiteral","src":"3721:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3709:3:44","nodeType":"YulIdentifier","src":"3709:3:44"},"nativeSrc":"3709:17:44","nodeType":"YulFunctionCall","src":"3709:17:44"},{"name":"end","nativeSrc":"3728:3:44","nodeType":"YulIdentifier","src":"3728:3:44"}],"functionName":{"name":"slt","nativeSrc":"3705:3:44","nodeType":"YulIdentifier","src":"3705:3:44"},"nativeSrc":"3705:27:44","nodeType":"YulFunctionCall","src":"3705:27:44"}],"functionName":{"name":"iszero","nativeSrc":"3698:6:44","nodeType":"YulIdentifier","src":"3698:6:44"},"nativeSrc":"3698:35:44","nodeType":"YulFunctionCall","src":"3698:35:44"},"nativeSrc":"3695:122:44","nodeType":"YulIf","src":"3695:122:44"},{"nativeSrc":"3826:34:44","nodeType":"YulVariableDeclaration","src":"3826:34:44","value":{"arguments":[{"name":"offset","nativeSrc":"3853:6:44","nodeType":"YulIdentifier","src":"3853:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3840:12:44","nodeType":"YulIdentifier","src":"3840:12:44"},"nativeSrc":"3840:20:44","nodeType":"YulFunctionCall","src":"3840:20:44"},"variables":[{"name":"length","nativeSrc":"3830:6:44","nodeType":"YulTypedName","src":"3830:6:44","type":""}]},{"nativeSrc":"3869:87:44","nodeType":"YulAssignment","src":"3869:87:44","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3929:6:44","nodeType":"YulIdentifier","src":"3929:6:44"},{"kind":"number","nativeSrc":"3937:4:44","nodeType":"YulLiteral","src":"3937:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3925:3:44","nodeType":"YulIdentifier","src":"3925:3:44"},"nativeSrc":"3925:17:44","nodeType":"YulFunctionCall","src":"3925:17:44"},{"name":"length","nativeSrc":"3944:6:44","nodeType":"YulIdentifier","src":"3944:6:44"},{"name":"end","nativeSrc":"3952:3:44","nodeType":"YulIdentifier","src":"3952:3:44"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3878:46:44","nodeType":"YulIdentifier","src":"3878:46:44"},"nativeSrc":"3878:78:44","nodeType":"YulFunctionCall","src":"3878:78:44"},"variableNames":[{"name":"array","nativeSrc":"3869:5:44","nodeType":"YulIdentifier","src":"3869:5:44"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"3624:338:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3663:6:44","nodeType":"YulTypedName","src":"3663:6:44","type":""},{"name":"end","nativeSrc":"3671:3:44","nodeType":"YulTypedName","src":"3671:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3679:5:44","nodeType":"YulTypedName","src":"3679:5:44","type":""}],"src":"3624:338:44"},{"body":{"nativeSrc":"4114:725:44","nodeType":"YulBlock","src":"4114:725:44","statements":[{"body":{"nativeSrc":"4160:83:44","nodeType":"YulBlock","src":"4160:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4162:77:44","nodeType":"YulIdentifier","src":"4162:77:44"},"nativeSrc":"4162:79:44","nodeType":"YulFunctionCall","src":"4162:79:44"},"nativeSrc":"4162:79:44","nodeType":"YulExpressionStatement","src":"4162:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4135:7:44","nodeType":"YulIdentifier","src":"4135:7:44"},{"name":"headStart","nativeSrc":"4144:9:44","nodeType":"YulIdentifier","src":"4144:9:44"}],"functionName":{"name":"sub","nativeSrc":"4131:3:44","nodeType":"YulIdentifier","src":"4131:3:44"},"nativeSrc":"4131:23:44","nodeType":"YulFunctionCall","src":"4131:23:44"},{"kind":"number","nativeSrc":"4156:2:44","nodeType":"YulLiteral","src":"4156:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4127:3:44","nodeType":"YulIdentifier","src":"4127:3:44"},"nativeSrc":"4127:32:44","nodeType":"YulFunctionCall","src":"4127:32:44"},"nativeSrc":"4124:119:44","nodeType":"YulIf","src":"4124:119:44"},{"nativeSrc":"4253:154:44","nodeType":"YulBlock","src":"4253:154:44","statements":[{"nativeSrc":"4268:15:44","nodeType":"YulVariableDeclaration","src":"4268:15:44","value":{"kind":"number","nativeSrc":"4282:1:44","nodeType":"YulLiteral","src":"4282:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4272:6:44","nodeType":"YulTypedName","src":"4272:6:44","type":""}]},{"nativeSrc":"4297:100:44","nodeType":"YulAssignment","src":"4297:100:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4369:9:44","nodeType":"YulIdentifier","src":"4369:9:44"},{"name":"offset","nativeSrc":"4380:6:44","nodeType":"YulIdentifier","src":"4380:6:44"}],"functionName":{"name":"add","nativeSrc":"4365:3:44","nodeType":"YulIdentifier","src":"4365:3:44"},"nativeSrc":"4365:22:44","nodeType":"YulFunctionCall","src":"4365:22:44"},{"name":"dataEnd","nativeSrc":"4389:7:44","nodeType":"YulIdentifier","src":"4389:7:44"}],"functionName":{"name":"abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014","nativeSrc":"4307:57:44","nodeType":"YulIdentifier","src":"4307:57:44"},"nativeSrc":"4307:90:44","nodeType":"YulFunctionCall","src":"4307:90:44"},"variableNames":[{"name":"value0","nativeSrc":"4297:6:44","nodeType":"YulIdentifier","src":"4297:6:44"}]}]},{"nativeSrc":"4417:118:44","nodeType":"YulBlock","src":"4417:118:44","statements":[{"nativeSrc":"4432:16:44","nodeType":"YulVariableDeclaration","src":"4432:16:44","value":{"kind":"number","nativeSrc":"4446:2:44","nodeType":"YulLiteral","src":"4446:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4436:6:44","nodeType":"YulTypedName","src":"4436:6:44","type":""}]},{"nativeSrc":"4462:63:44","nodeType":"YulAssignment","src":"4462:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4497:9:44","nodeType":"YulIdentifier","src":"4497:9:44"},{"name":"offset","nativeSrc":"4508:6:44","nodeType":"YulIdentifier","src":"4508:6:44"}],"functionName":{"name":"add","nativeSrc":"4493:3:44","nodeType":"YulIdentifier","src":"4493:3:44"},"nativeSrc":"4493:22:44","nodeType":"YulFunctionCall","src":"4493:22:44"},{"name":"dataEnd","nativeSrc":"4517:7:44","nodeType":"YulIdentifier","src":"4517:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4472:20:44","nodeType":"YulIdentifier","src":"4472:20:44"},"nativeSrc":"4472:53:44","nodeType":"YulFunctionCall","src":"4472:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4462:6:44","nodeType":"YulIdentifier","src":"4462:6:44"}]}]},{"nativeSrc":"4545:287:44","nodeType":"YulBlock","src":"4545:287:44","statements":[{"nativeSrc":"4560:46:44","nodeType":"YulVariableDeclaration","src":"4560:46:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4591:9:44","nodeType":"YulIdentifier","src":"4591:9:44"},{"kind":"number","nativeSrc":"4602:2:44","nodeType":"YulLiteral","src":"4602:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4587:3:44","nodeType":"YulIdentifier","src":"4587:3:44"},"nativeSrc":"4587:18:44","nodeType":"YulFunctionCall","src":"4587:18:44"}],"functionName":{"name":"calldataload","nativeSrc":"4574:12:44","nodeType":"YulIdentifier","src":"4574:12:44"},"nativeSrc":"4574:32:44","nodeType":"YulFunctionCall","src":"4574:32:44"},"variables":[{"name":"offset","nativeSrc":"4564:6:44","nodeType":"YulTypedName","src":"4564:6:44","type":""}]},{"body":{"nativeSrc":"4653:83:44","nodeType":"YulBlock","src":"4653:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4655:77:44","nodeType":"YulIdentifier","src":"4655:77:44"},"nativeSrc":"4655:79:44","nodeType":"YulFunctionCall","src":"4655:79:44"},"nativeSrc":"4655:79:44","nodeType":"YulExpressionStatement","src":"4655:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4625:6:44","nodeType":"YulIdentifier","src":"4625:6:44"},{"kind":"number","nativeSrc":"4633:18:44","nodeType":"YulLiteral","src":"4633:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4622:2:44","nodeType":"YulIdentifier","src":"4622:2:44"},"nativeSrc":"4622:30:44","nodeType":"YulFunctionCall","src":"4622:30:44"},"nativeSrc":"4619:117:44","nodeType":"YulIf","src":"4619:117:44"},{"nativeSrc":"4750:72:44","nodeType":"YulAssignment","src":"4750:72:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4794:9:44","nodeType":"YulIdentifier","src":"4794:9:44"},{"name":"offset","nativeSrc":"4805:6:44","nodeType":"YulIdentifier","src":"4805:6:44"}],"functionName":{"name":"add","nativeSrc":"4790:3:44","nodeType":"YulIdentifier","src":"4790:3:44"},"nativeSrc":"4790:22:44","nodeType":"YulFunctionCall","src":"4790:22:44"},{"name":"dataEnd","nativeSrc":"4814:7:44","nodeType":"YulIdentifier","src":"4814:7:44"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4760:29:44","nodeType":"YulIdentifier","src":"4760:29:44"},"nativeSrc":"4760:62:44","nodeType":"YulFunctionCall","src":"4760:62:44"},"variableNames":[{"name":"value2","nativeSrc":"4750:6:44","nodeType":"YulIdentifier","src":"4750:6:44"}]}]}]},"name":"abi_decode_tuple_t_contract$_ITransparentUpgradeableProxy_$3014t_addresst_bytes_memory_ptr","nativeSrc":"3968:871:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4068:9:44","nodeType":"YulTypedName","src":"4068:9:44","type":""},{"name":"dataEnd","nativeSrc":"4079:7:44","nodeType":"YulTypedName","src":"4079:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4091:6:44","nodeType":"YulTypedName","src":"4091:6:44","type":""},{"name":"value1","nativeSrc":"4099:6:44","nodeType":"YulTypedName","src":"4099:6:44","type":""},{"name":"value2","nativeSrc":"4107:6:44","nodeType":"YulTypedName","src":"4107:6:44","type":""}],"src":"3968:871:44"},{"body":{"nativeSrc":"4904:40:44","nodeType":"YulBlock","src":"4904:40:44","statements":[{"nativeSrc":"4915:22:44","nodeType":"YulAssignment","src":"4915:22:44","value":{"arguments":[{"name":"value","nativeSrc":"4931:5:44","nodeType":"YulIdentifier","src":"4931:5:44"}],"functionName":{"name":"mload","nativeSrc":"4925:5:44","nodeType":"YulIdentifier","src":"4925:5:44"},"nativeSrc":"4925:12:44","nodeType":"YulFunctionCall","src":"4925:12:44"},"variableNames":[{"name":"length","nativeSrc":"4915:6:44","nodeType":"YulIdentifier","src":"4915:6:44"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"4845:99:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4887:5:44","nodeType":"YulTypedName","src":"4887:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4897:6:44","nodeType":"YulTypedName","src":"4897:6:44","type":""}],"src":"4845:99:44"},{"body":{"nativeSrc":"5046:73:44","nodeType":"YulBlock","src":"5046:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5063:3:44","nodeType":"YulIdentifier","src":"5063:3:44"},{"name":"length","nativeSrc":"5068:6:44","nodeType":"YulIdentifier","src":"5068:6:44"}],"functionName":{"name":"mstore","nativeSrc":"5056:6:44","nodeType":"YulIdentifier","src":"5056:6:44"},"nativeSrc":"5056:19:44","nodeType":"YulFunctionCall","src":"5056:19:44"},"nativeSrc":"5056:19:44","nodeType":"YulExpressionStatement","src":"5056:19:44"},{"nativeSrc":"5084:29:44","nodeType":"YulAssignment","src":"5084:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"5103:3:44","nodeType":"YulIdentifier","src":"5103:3:44"},{"kind":"number","nativeSrc":"5108:4:44","nodeType":"YulLiteral","src":"5108:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5099:3:44","nodeType":"YulIdentifier","src":"5099:3:44"},"nativeSrc":"5099:14:44","nodeType":"YulFunctionCall","src":"5099:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"5084:11:44","nodeType":"YulIdentifier","src":"5084:11:44"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4950:169:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5018:3:44","nodeType":"YulTypedName","src":"5018:3:44","type":""},{"name":"length","nativeSrc":"5023:6:44","nodeType":"YulTypedName","src":"5023:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5034:11:44","nodeType":"YulTypedName","src":"5034:11:44","type":""}],"src":"4950:169:44"},{"body":{"nativeSrc":"5187:186:44","nodeType":"YulBlock","src":"5187:186:44","statements":[{"nativeSrc":"5198:10:44","nodeType":"YulVariableDeclaration","src":"5198:10:44","value":{"kind":"number","nativeSrc":"5207:1:44","nodeType":"YulLiteral","src":"5207:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5202:1:44","nodeType":"YulTypedName","src":"5202:1:44","type":""}]},{"body":{"nativeSrc":"5267:63:44","nodeType":"YulBlock","src":"5267:63:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5292:3:44","nodeType":"YulIdentifier","src":"5292:3:44"},{"name":"i","nativeSrc":"5297:1:44","nodeType":"YulIdentifier","src":"5297:1:44"}],"functionName":{"name":"add","nativeSrc":"5288:3:44","nodeType":"YulIdentifier","src":"5288:3:44"},"nativeSrc":"5288:11:44","nodeType":"YulFunctionCall","src":"5288:11:44"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5311:3:44","nodeType":"YulIdentifier","src":"5311:3:44"},{"name":"i","nativeSrc":"5316:1:44","nodeType":"YulIdentifier","src":"5316:1:44"}],"functionName":{"name":"add","nativeSrc":"5307:3:44","nodeType":"YulIdentifier","src":"5307:3:44"},"nativeSrc":"5307:11:44","nodeType":"YulFunctionCall","src":"5307:11:44"}],"functionName":{"name":"mload","nativeSrc":"5301:5:44","nodeType":"YulIdentifier","src":"5301:5:44"},"nativeSrc":"5301:18:44","nodeType":"YulFunctionCall","src":"5301:18:44"}],"functionName":{"name":"mstore","nativeSrc":"5281:6:44","nodeType":"YulIdentifier","src":"5281:6:44"},"nativeSrc":"5281:39:44","nodeType":"YulFunctionCall","src":"5281:39:44"},"nativeSrc":"5281:39:44","nodeType":"YulExpressionStatement","src":"5281:39:44"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5228:1:44","nodeType":"YulIdentifier","src":"5228:1:44"},{"name":"length","nativeSrc":"5231:6:44","nodeType":"YulIdentifier","src":"5231:6:44"}],"functionName":{"name":"lt","nativeSrc":"5225:2:44","nodeType":"YulIdentifier","src":"5225:2:44"},"nativeSrc":"5225:13:44","nodeType":"YulFunctionCall","src":"5225:13:44"},"nativeSrc":"5217:113:44","nodeType":"YulForLoop","post":{"nativeSrc":"5239:19:44","nodeType":"YulBlock","src":"5239:19:44","statements":[{"nativeSrc":"5241:15:44","nodeType":"YulAssignment","src":"5241:15:44","value":{"arguments":[{"name":"i","nativeSrc":"5250:1:44","nodeType":"YulIdentifier","src":"5250:1:44"},{"kind":"number","nativeSrc":"5253:2:44","nodeType":"YulLiteral","src":"5253:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5246:3:44","nodeType":"YulIdentifier","src":"5246:3:44"},"nativeSrc":"5246:10:44","nodeType":"YulFunctionCall","src":"5246:10:44"},"variableNames":[{"name":"i","nativeSrc":"5241:1:44","nodeType":"YulIdentifier","src":"5241:1:44"}]}]},"pre":{"nativeSrc":"5221:3:44","nodeType":"YulBlock","src":"5221:3:44","statements":[]},"src":"5217:113:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5350:3:44","nodeType":"YulIdentifier","src":"5350:3:44"},{"name":"length","nativeSrc":"5355:6:44","nodeType":"YulIdentifier","src":"5355:6:44"}],"functionName":{"name":"add","nativeSrc":"5346:3:44","nodeType":"YulIdentifier","src":"5346:3:44"},"nativeSrc":"5346:16:44","nodeType":"YulFunctionCall","src":"5346:16:44"},{"kind":"number","nativeSrc":"5364:1:44","nodeType":"YulLiteral","src":"5364:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5339:6:44","nodeType":"YulIdentifier","src":"5339:6:44"},"nativeSrc":"5339:27:44","nodeType":"YulFunctionCall","src":"5339:27:44"},"nativeSrc":"5339:27:44","nodeType":"YulExpressionStatement","src":"5339:27:44"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5125:248:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5169:3:44","nodeType":"YulTypedName","src":"5169:3:44","type":""},{"name":"dst","nativeSrc":"5174:3:44","nodeType":"YulTypedName","src":"5174:3:44","type":""},{"name":"length","nativeSrc":"5179:6:44","nodeType":"YulTypedName","src":"5179:6:44","type":""}],"src":"5125:248:44"},{"body":{"nativeSrc":"5471:285:44","nodeType":"YulBlock","src":"5471:285:44","statements":[{"nativeSrc":"5481:53:44","nodeType":"YulVariableDeclaration","src":"5481:53:44","value":{"arguments":[{"name":"value","nativeSrc":"5528:5:44","nodeType":"YulIdentifier","src":"5528:5:44"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"5495:32:44","nodeType":"YulIdentifier","src":"5495:32:44"},"nativeSrc":"5495:39:44","nodeType":"YulFunctionCall","src":"5495:39:44"},"variables":[{"name":"length","nativeSrc":"5485:6:44","nodeType":"YulTypedName","src":"5485:6:44","type":""}]},{"nativeSrc":"5543:78:44","nodeType":"YulAssignment","src":"5543:78:44","value":{"arguments":[{"name":"pos","nativeSrc":"5609:3:44","nodeType":"YulIdentifier","src":"5609:3:44"},{"name":"length","nativeSrc":"5614:6:44","nodeType":"YulIdentifier","src":"5614:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5550:58:44","nodeType":"YulIdentifier","src":"5550:58:44"},"nativeSrc":"5550:71:44","nodeType":"YulFunctionCall","src":"5550:71:44"},"variableNames":[{"name":"pos","nativeSrc":"5543:3:44","nodeType":"YulIdentifier","src":"5543:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5669:5:44","nodeType":"YulIdentifier","src":"5669:5:44"},{"kind":"number","nativeSrc":"5676:4:44","nodeType":"YulLiteral","src":"5676:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5665:3:44","nodeType":"YulIdentifier","src":"5665:3:44"},"nativeSrc":"5665:16:44","nodeType":"YulFunctionCall","src":"5665:16:44"},{"name":"pos","nativeSrc":"5683:3:44","nodeType":"YulIdentifier","src":"5683:3:44"},{"name":"length","nativeSrc":"5688:6:44","nodeType":"YulIdentifier","src":"5688:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5630:34:44","nodeType":"YulIdentifier","src":"5630:34:44"},"nativeSrc":"5630:65:44","nodeType":"YulFunctionCall","src":"5630:65:44"},"nativeSrc":"5630:65:44","nodeType":"YulExpressionStatement","src":"5630:65:44"},{"nativeSrc":"5704:46:44","nodeType":"YulAssignment","src":"5704:46:44","value":{"arguments":[{"name":"pos","nativeSrc":"5715:3:44","nodeType":"YulIdentifier","src":"5715:3:44"},{"arguments":[{"name":"length","nativeSrc":"5742:6:44","nodeType":"YulIdentifier","src":"5742:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5720:21:44","nodeType":"YulIdentifier","src":"5720:21:44"},"nativeSrc":"5720:29:44","nodeType":"YulFunctionCall","src":"5720:29:44"}],"functionName":{"name":"add","nativeSrc":"5711:3:44","nodeType":"YulIdentifier","src":"5711:3:44"},"nativeSrc":"5711:39:44","nodeType":"YulFunctionCall","src":"5711:39:44"},"variableNames":[{"name":"end","nativeSrc":"5704:3:44","nodeType":"YulIdentifier","src":"5704:3:44"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"5379:377:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5452:5:44","nodeType":"YulTypedName","src":"5452:5:44","type":""},{"name":"pos","nativeSrc":"5459:3:44","nodeType":"YulTypedName","src":"5459:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5467:3:44","nodeType":"YulTypedName","src":"5467:3:44","type":""}],"src":"5379:377:44"},{"body":{"nativeSrc":"5880:195:44","nodeType":"YulBlock","src":"5880:195:44","statements":[{"nativeSrc":"5890:26:44","nodeType":"YulAssignment","src":"5890:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"5902:9:44","nodeType":"YulIdentifier","src":"5902:9:44"},{"kind":"number","nativeSrc":"5913:2:44","nodeType":"YulLiteral","src":"5913:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5898:3:44","nodeType":"YulIdentifier","src":"5898:3:44"},"nativeSrc":"5898:18:44","nodeType":"YulFunctionCall","src":"5898:18:44"},"variableNames":[{"name":"tail","nativeSrc":"5890:4:44","nodeType":"YulIdentifier","src":"5890:4:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5937:9:44","nodeType":"YulIdentifier","src":"5937:9:44"},{"kind":"number","nativeSrc":"5948:1:44","nodeType":"YulLiteral","src":"5948:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5933:3:44","nodeType":"YulIdentifier","src":"5933:3:44"},"nativeSrc":"5933:17:44","nodeType":"YulFunctionCall","src":"5933:17:44"},{"arguments":[{"name":"tail","nativeSrc":"5956:4:44","nodeType":"YulIdentifier","src":"5956:4:44"},{"name":"headStart","nativeSrc":"5962:9:44","nodeType":"YulIdentifier","src":"5962:9:44"}],"functionName":{"name":"sub","nativeSrc":"5952:3:44","nodeType":"YulIdentifier","src":"5952:3:44"},"nativeSrc":"5952:20:44","nodeType":"YulFunctionCall","src":"5952:20:44"}],"functionName":{"name":"mstore","nativeSrc":"5926:6:44","nodeType":"YulIdentifier","src":"5926:6:44"},"nativeSrc":"5926:47:44","nodeType":"YulFunctionCall","src":"5926:47:44"},"nativeSrc":"5926:47:44","nodeType":"YulExpressionStatement","src":"5926:47:44"},{"nativeSrc":"5982:86:44","nodeType":"YulAssignment","src":"5982:86:44","value":{"arguments":[{"name":"value0","nativeSrc":"6054:6:44","nodeType":"YulIdentifier","src":"6054:6:44"},{"name":"tail","nativeSrc":"6063:4:44","nodeType":"YulIdentifier","src":"6063:4:44"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"5990:63:44","nodeType":"YulIdentifier","src":"5990:63:44"},"nativeSrc":"5990:78:44","nodeType":"YulFunctionCall","src":"5990:78:44"},"variableNames":[{"name":"tail","nativeSrc":"5982:4:44","nodeType":"YulIdentifier","src":"5982:4:44"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5762:313:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5852:9:44","nodeType":"YulTypedName","src":"5852:9:44","type":""},{"name":"value0","nativeSrc":"5864:6:44","nodeType":"YulTypedName","src":"5864:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5875:4:44","nodeType":"YulTypedName","src":"5875:4:44","type":""}],"src":"5762:313:44"},{"body":{"nativeSrc":"6147:263:44","nodeType":"YulBlock","src":"6147:263:44","statements":[{"body":{"nativeSrc":"6193:83:44","nodeType":"YulBlock","src":"6193:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6195:77:44","nodeType":"YulIdentifier","src":"6195:77:44"},"nativeSrc":"6195:79:44","nodeType":"YulFunctionCall","src":"6195:79:44"},"nativeSrc":"6195:79:44","nodeType":"YulExpressionStatement","src":"6195:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6168:7:44","nodeType":"YulIdentifier","src":"6168:7:44"},{"name":"headStart","nativeSrc":"6177:9:44","nodeType":"YulIdentifier","src":"6177:9:44"}],"functionName":{"name":"sub","nativeSrc":"6164:3:44","nodeType":"YulIdentifier","src":"6164:3:44"},"nativeSrc":"6164:23:44","nodeType":"YulFunctionCall","src":"6164:23:44"},{"kind":"number","nativeSrc":"6189:2:44","nodeType":"YulLiteral","src":"6189:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6160:3:44","nodeType":"YulIdentifier","src":"6160:3:44"},"nativeSrc":"6160:32:44","nodeType":"YulFunctionCall","src":"6160:32:44"},"nativeSrc":"6157:119:44","nodeType":"YulIf","src":"6157:119:44"},{"nativeSrc":"6286:117:44","nodeType":"YulBlock","src":"6286:117:44","statements":[{"nativeSrc":"6301:15:44","nodeType":"YulVariableDeclaration","src":"6301:15:44","value":{"kind":"number","nativeSrc":"6315:1:44","nodeType":"YulLiteral","src":"6315:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6305:6:44","nodeType":"YulTypedName","src":"6305:6:44","type":""}]},{"nativeSrc":"6330:63:44","nodeType":"YulAssignment","src":"6330:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6365:9:44","nodeType":"YulIdentifier","src":"6365:9:44"},{"name":"offset","nativeSrc":"6376:6:44","nodeType":"YulIdentifier","src":"6376:6:44"}],"functionName":{"name":"add","nativeSrc":"6361:3:44","nodeType":"YulIdentifier","src":"6361:3:44"},"nativeSrc":"6361:22:44","nodeType":"YulFunctionCall","src":"6361:22:44"},{"name":"dataEnd","nativeSrc":"6385:7:44","nodeType":"YulIdentifier","src":"6385:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6340:20:44","nodeType":"YulIdentifier","src":"6340:20:44"},"nativeSrc":"6340:53:44","nodeType":"YulFunctionCall","src":"6340:53:44"},"variableNames":[{"name":"value0","nativeSrc":"6330:6:44","nodeType":"YulIdentifier","src":"6330:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6081:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6117:9:44","nodeType":"YulTypedName","src":"6117:9:44","type":""},{"name":"dataEnd","nativeSrc":"6128:7:44","nodeType":"YulTypedName","src":"6128:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6140:6:44","nodeType":"YulTypedName","src":"6140:6:44","type":""}],"src":"6081:329:44"},{"body":{"nativeSrc":"6474:40:44","nodeType":"YulBlock","src":"6474:40:44","statements":[{"nativeSrc":"6485:22:44","nodeType":"YulAssignment","src":"6485:22:44","value":{"arguments":[{"name":"value","nativeSrc":"6501:5:44","nodeType":"YulIdentifier","src":"6501:5:44"}],"functionName":{"name":"mload","nativeSrc":"6495:5:44","nodeType":"YulIdentifier","src":"6495:5:44"},"nativeSrc":"6495:12:44","nodeType":"YulFunctionCall","src":"6495:12:44"},"variableNames":[{"name":"length","nativeSrc":"6485:6:44","nodeType":"YulIdentifier","src":"6485:6:44"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6416:98:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6457:5:44","nodeType":"YulTypedName","src":"6457:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6467:6:44","nodeType":"YulTypedName","src":"6467:6:44","type":""}],"src":"6416:98:44"},{"body":{"nativeSrc":"6615:73:44","nodeType":"YulBlock","src":"6615:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6632:3:44","nodeType":"YulIdentifier","src":"6632:3:44"},{"name":"length","nativeSrc":"6637:6:44","nodeType":"YulIdentifier","src":"6637:6:44"}],"functionName":{"name":"mstore","nativeSrc":"6625:6:44","nodeType":"YulIdentifier","src":"6625:6:44"},"nativeSrc":"6625:19:44","nodeType":"YulFunctionCall","src":"6625:19:44"},"nativeSrc":"6625:19:44","nodeType":"YulExpressionStatement","src":"6625:19:44"},{"nativeSrc":"6653:29:44","nodeType":"YulAssignment","src":"6653:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"6672:3:44","nodeType":"YulIdentifier","src":"6672:3:44"},{"kind":"number","nativeSrc":"6677:4:44","nodeType":"YulLiteral","src":"6677:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6668:3:44","nodeType":"YulIdentifier","src":"6668:3:44"},"nativeSrc":"6668:14:44","nodeType":"YulFunctionCall","src":"6668:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"6653:11:44","nodeType":"YulIdentifier","src":"6653:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"6520:168:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6587:3:44","nodeType":"YulTypedName","src":"6587:3:44","type":""},{"name":"length","nativeSrc":"6592:6:44","nodeType":"YulTypedName","src":"6592:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6603:11:44","nodeType":"YulTypedName","src":"6603:11:44","type":""}],"src":"6520:168:44"},{"body":{"nativeSrc":"6784:283:44","nodeType":"YulBlock","src":"6784:283:44","statements":[{"nativeSrc":"6794:52:44","nodeType":"YulVariableDeclaration","src":"6794:52:44","value":{"arguments":[{"name":"value","nativeSrc":"6840:5:44","nodeType":"YulIdentifier","src":"6840:5:44"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"6808:31:44","nodeType":"YulIdentifier","src":"6808:31:44"},"nativeSrc":"6808:38:44","nodeType":"YulFunctionCall","src":"6808:38:44"},"variables":[{"name":"length","nativeSrc":"6798:6:44","nodeType":"YulTypedName","src":"6798:6:44","type":""}]},{"nativeSrc":"6855:77:44","nodeType":"YulAssignment","src":"6855:77:44","value":{"arguments":[{"name":"pos","nativeSrc":"6920:3:44","nodeType":"YulIdentifier","src":"6920:3:44"},{"name":"length","nativeSrc":"6925:6:44","nodeType":"YulIdentifier","src":"6925:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"6862:57:44","nodeType":"YulIdentifier","src":"6862:57:44"},"nativeSrc":"6862:70:44","nodeType":"YulFunctionCall","src":"6862:70:44"},"variableNames":[{"name":"pos","nativeSrc":"6855:3:44","nodeType":"YulIdentifier","src":"6855:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6980:5:44","nodeType":"YulIdentifier","src":"6980:5:44"},{"kind":"number","nativeSrc":"6987:4:44","nodeType":"YulLiteral","src":"6987:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6976:3:44","nodeType":"YulIdentifier","src":"6976:3:44"},"nativeSrc":"6976:16:44","nodeType":"YulFunctionCall","src":"6976:16:44"},{"name":"pos","nativeSrc":"6994:3:44","nodeType":"YulIdentifier","src":"6994:3:44"},{"name":"length","nativeSrc":"6999:6:44","nodeType":"YulIdentifier","src":"6999:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"6941:34:44","nodeType":"YulIdentifier","src":"6941:34:44"},"nativeSrc":"6941:65:44","nodeType":"YulFunctionCall","src":"6941:65:44"},"nativeSrc":"6941:65:44","nodeType":"YulExpressionStatement","src":"6941:65:44"},{"nativeSrc":"7015:46:44","nodeType":"YulAssignment","src":"7015:46:44","value":{"arguments":[{"name":"pos","nativeSrc":"7026:3:44","nodeType":"YulIdentifier","src":"7026:3:44"},{"arguments":[{"name":"length","nativeSrc":"7053:6:44","nodeType":"YulIdentifier","src":"7053:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7031:21:44","nodeType":"YulIdentifier","src":"7031:21:44"},"nativeSrc":"7031:29:44","nodeType":"YulFunctionCall","src":"7031:29:44"}],"functionName":{"name":"add","nativeSrc":"7022:3:44","nodeType":"YulIdentifier","src":"7022:3:44"},"nativeSrc":"7022:39:44","nodeType":"YulFunctionCall","src":"7022:39:44"},"variableNames":[{"name":"end","nativeSrc":"7015:3:44","nodeType":"YulIdentifier","src":"7015:3:44"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"6694:373:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6765:5:44","nodeType":"YulTypedName","src":"6765:5:44","type":""},{"name":"pos","nativeSrc":"6772:3:44","nodeType":"YulTypedName","src":"6772:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6780:3:44","nodeType":"YulTypedName","src":"6780:3:44","type":""}],"src":"6694:373:44"},{"body":{"nativeSrc":"7217:275:44","nodeType":"YulBlock","src":"7217:275:44","statements":[{"nativeSrc":"7227:26:44","nodeType":"YulAssignment","src":"7227:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7239:9:44","nodeType":"YulIdentifier","src":"7239:9:44"},{"kind":"number","nativeSrc":"7250:2:44","nodeType":"YulLiteral","src":"7250:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7235:3:44","nodeType":"YulIdentifier","src":"7235:3:44"},"nativeSrc":"7235:18:44","nodeType":"YulFunctionCall","src":"7235:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7227:4:44","nodeType":"YulIdentifier","src":"7227:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7307:6:44","nodeType":"YulIdentifier","src":"7307:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7320:9:44","nodeType":"YulIdentifier","src":"7320:9:44"},{"kind":"number","nativeSrc":"7331:1:44","nodeType":"YulLiteral","src":"7331:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7316:3:44","nodeType":"YulIdentifier","src":"7316:3:44"},"nativeSrc":"7316:17:44","nodeType":"YulFunctionCall","src":"7316:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7263:43:44","nodeType":"YulIdentifier","src":"7263:43:44"},"nativeSrc":"7263:71:44","nodeType":"YulFunctionCall","src":"7263:71:44"},"nativeSrc":"7263:71:44","nodeType":"YulExpressionStatement","src":"7263:71:44"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7355:9:44","nodeType":"YulIdentifier","src":"7355:9:44"},{"kind":"number","nativeSrc":"7366:2:44","nodeType":"YulLiteral","src":"7366:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7351:3:44","nodeType":"YulIdentifier","src":"7351:3:44"},"nativeSrc":"7351:18:44","nodeType":"YulFunctionCall","src":"7351:18:44"},{"arguments":[{"name":"tail","nativeSrc":"7375:4:44","nodeType":"YulIdentifier","src":"7375:4:44"},{"name":"headStart","nativeSrc":"7381:9:44","nodeType":"YulIdentifier","src":"7381:9:44"}],"functionName":{"name":"sub","nativeSrc":"7371:3:44","nodeType":"YulIdentifier","src":"7371:3:44"},"nativeSrc":"7371:20:44","nodeType":"YulFunctionCall","src":"7371:20:44"}],"functionName":{"name":"mstore","nativeSrc":"7344:6:44","nodeType":"YulIdentifier","src":"7344:6:44"},"nativeSrc":"7344:48:44","nodeType":"YulFunctionCall","src":"7344:48:44"},"nativeSrc":"7344:48:44","nodeType":"YulExpressionStatement","src":"7344:48:44"},{"nativeSrc":"7401:84:44","nodeType":"YulAssignment","src":"7401:84:44","value":{"arguments":[{"name":"value1","nativeSrc":"7471:6:44","nodeType":"YulIdentifier","src":"7471:6:44"},{"name":"tail","nativeSrc":"7480:4:44","nodeType":"YulIdentifier","src":"7480:4:44"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7409:61:44","nodeType":"YulIdentifier","src":"7409:61:44"},"nativeSrc":"7409:76:44","nodeType":"YulFunctionCall","src":"7409:76:44"},"variableNames":[{"name":"tail","nativeSrc":"7401:4:44","nodeType":"YulIdentifier","src":"7401:4:44"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7073:419:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7181:9:44","nodeType":"YulTypedName","src":"7181:9:44","type":""},{"name":"value1","nativeSrc":"7193:6:44","nodeType":"YulTypedName","src":"7193:6:44","type":""},{"name":"value0","nativeSrc":"7201:6:44","nodeType":"YulTypedName","src":"7201:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7212:4:44","nodeType":"YulTypedName","src":"7212:4:44","type":""}],"src":"7073:419:44"}]},"contents":"{\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_contract$_ITransparentUpgradeableProxy_$3014(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(value) {\n        if iszero(eq(value, cleanup_t_contract$_ITransparentUpgradeableProxy_$3014(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_ITransparentUpgradeableProxy_$3014(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_ITransparentUpgradeableProxy_$3014(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\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_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 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_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_contract$_ITransparentUpgradeableProxy_$3014t_addresst_bytes_memory_ptr(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_contract$_ITransparentUpgradeableProxy_$3014(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 := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr(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 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 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 abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_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_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__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        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 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 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF 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 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF 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 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ","sourceMap":"502:1462:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2293:101:8;;;;;;;;;;;;;:::i;:::-;;1638:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1717:245:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1187:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2543:215:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2293:101;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;1717:245:17:-;1531:13:8;:11;:13::i;:::-;1893:5:17::1;:22;;;1923:9;1934:14;1950:4;1893:62;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;1717:245:::0;;;:::o;1187:58::-;;;;;;;;;;;;;;;;;;;:::o;2543:215:8:-;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;1796:162::-;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;2912:187::-;2985:16;3004:6;;;;;;;;;;;2985:25;;3029:8;3020:6;;:17;;;;;;;;;;;;;;;;;;3083:8;3052:40;;3073:8;3052:40;;;;;;;;;;;;2975:124;2912:187;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;7:126:44:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:75::-;626:6;659:2;653:9;643:19;;593:75;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:133;994:7;1023:24;1041:5;1023:24;:::i;:::-;1012:35;;920:133;;;:::o;1059:196::-;1169:61;1224:5;1169:61;:::i;:::-;1162:5;1159:72;1149:100;;1245:1;1242;1235:12;1149:100;1059:196;:::o;1261:213::-;1344:5;1382:6;1369:20;1360:29;;1398:70;1462:5;1398:70;:::i;:::-;1261:213;;;;:::o;1480:122::-;1553:24;1571:5;1553:24;:::i;:::-;1546:5;1543:35;1533:63;;1592:1;1589;1582:12;1533:63;1480:122;:::o;1608:139::-;1654:5;1692:6;1679:20;1670:29;;1708:33;1735:5;1708:33;:::i;:::-;1608:139;;;;:::o;1753:117::-;1862:1;1859;1852:12;1876:117;1985:1;1982;1975:12;1999:102;2040:6;2091:2;2087:7;2082:2;2075:5;2071:14;2067:28;2057:38;;1999:102;;;:::o;2107:180::-;2155:77;2152:1;2145:88;2252:4;2249:1;2242:15;2276:4;2273:1;2266:15;2293:281;2376:27;2398:4;2376:27;:::i;:::-;2368:6;2364:40;2506:6;2494:10;2491:22;2470:18;2458:10;2455:34;2452:62;2449:88;;;2517:18;;:::i;:::-;2449:88;2557:10;2553:2;2546:22;2336:238;2293:281;;:::o;2580:129::-;2614:6;2641:20;;:::i;:::-;2631:30;;2670:33;2698:4;2690:6;2670:33;:::i;:::-;2580:129;;;:::o;2715:307::-;2776:4;2866:18;2858:6;2855:30;2852:56;;;2888:18;;:::i;:::-;2852:56;2926:29;2948:6;2926:29;:::i;:::-;2918:37;;3010:4;3004;3000:15;2992:23;;2715:307;;;:::o;3028:148::-;3126:6;3121:3;3116;3103:30;3167:1;3158:6;3153:3;3149:16;3142:27;3028:148;;;:::o;3182:423::-;3259:5;3284:65;3300:48;3341:6;3300:48;:::i;:::-;3284:65;:::i;:::-;3275:74;;3372:6;3365:5;3358:21;3410:4;3403:5;3399:16;3448:3;3439:6;3434:3;3430:16;3427:25;3424:112;;;3455:79;;:::i;:::-;3424:112;3545:54;3592:6;3587:3;3582;3545:54;:::i;:::-;3265:340;3182:423;;;;;:::o;3624:338::-;3679:5;3728:3;3721:4;3713:6;3709:17;3705:27;3695:122;;3736:79;;:::i;:::-;3695:122;3853:6;3840:20;3878:78;3952:3;3944:6;3937:4;3929:6;3925:17;3878:78;:::i;:::-;3869:87;;3685:277;3624:338;;;;:::o;3968:871::-;4091:6;4099;4107;4156:2;4144:9;4135:7;4131:23;4127:32;4124:119;;;4162:79;;:::i;:::-;4124:119;4282:1;4307:90;4389:7;4380:6;4369:9;4365:22;4307:90;:::i;:::-;4297:100;;4253:154;4446:2;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4417:118;4602:2;4591:9;4587:18;4574:32;4633:18;4625:6;4622:30;4619:117;;;4655:79;;:::i;:::-;4619:117;4760:62;4814:7;4805:6;4794:9;4790:22;4760:62;:::i;:::-;4750:72;;4545:287;3968:871;;;;;:::o;4845:99::-;4897:6;4931:5;4925:12;4915:22;;4845:99;;;:::o;4950:169::-;5034:11;5068:6;5063:3;5056:19;5108:4;5103:3;5099:14;5084:29;;4950:169;;;;:::o;5125:248::-;5207:1;5217:113;5231:6;5228:1;5225:13;5217:113;;;5316:1;5311:3;5307:11;5301:18;5297:1;5292:3;5288:11;5281:39;5253:2;5250:1;5246:10;5241:15;;5217:113;;;5364:1;5355:6;5350:3;5346:16;5339:27;5187:186;5125:248;;;:::o;5379:377::-;5467:3;5495:39;5528:5;5495:39;:::i;:::-;5550:71;5614:6;5609:3;5550:71;:::i;:::-;5543:78;;5630:65;5688:6;5683:3;5676:4;5669:5;5665:16;5630:65;:::i;:::-;5720:29;5742:6;5720:29;:::i;:::-;5715:3;5711:39;5704:46;;5471:285;5379:377;;;;:::o;5762:313::-;5875:4;5913:2;5902:9;5898:18;5890:26;;5962:9;5956:4;5952:20;5948:1;5937:9;5933:17;5926:47;5990:78;6063:4;6054:6;5990:78;:::i;:::-;5982:86;;5762:313;;;;:::o;6081:329::-;6140:6;6189:2;6177:9;6168:7;6164:23;6160:32;6157:119;;;6195:79;;:::i;:::-;6157:119;6315:1;6340:53;6385:7;6376:6;6365:9;6361:22;6340:53;:::i;:::-;6330:63;;6286:117;6081:329;;;;:::o;6416:98::-;6467:6;6501:5;6495:12;6485:22;;6416:98;;;:::o;6520:168::-;6603:11;6637:6;6632:3;6625:19;6677:4;6672:3;6668:14;6653:29;;6520:168;;;;:::o;6694:373::-;6780:3;6808:38;6840:5;6808:38;:::i;:::-;6862:70;6925:6;6920:3;6862:70;:::i;:::-;6855:77;;6941:65;6999:6;6994:3;6987:4;6980:5;6976:16;6941:65;:::i;:::-;7031:29;7053:6;7031:29;:::i;:::-;7026:3;7022:39;7015:46;;6784:283;6694:373;;;;:::o;7073:419::-;7212:4;7250:2;7239:9;7235:18;7227:26;;7263:71;7331:1;7320:9;7316:17;7307:6;7263:71;:::i;:::-;7381:9;7375:4;7371:20;7366:2;7355:9;7351:18;7344:48;7409:76;7480:4;7471:6;7409:76;:::i;:::-;7401:84;;7073:419;;;;;:::o"},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgradeAndCall(address,address,bytes)":"9623609d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"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\":\"Sets the initial owner who can perform upgrades.\"},\"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.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-_dispatchUpgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`. - If `data` is empty, `msg.value` must be zero.\"}},\"stateVariables\":{\"UPGRADE_INTERFACE_VERSION\":{\"details\":\"The version of the upgrade interface of the contract. If this getter is missing, both `upgrade(address,address)` and `upgradeAndCall(address,address,bytes)` are present, and `upgrade` must be used if no function should be called, while `upgradeAndCall` will invoke the `receive` function if the third argument is the empty byte string. If the getter returns `\\\"5.0.0\\\"`, only `upgradeAndCall(address,address,bytes)` is present, and the third argument must be the empty byte string if no function should be called, making it impossible to invoke the `receive` function during an upgrade.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":\"ProxyAdmin\"},\"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/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1580,"contract":"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol:ProxyAdmin","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"ITransparentUpgradeableProxy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy} does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not include them in the ABI so this interface must be used to interact with it.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"upgradeToAndCall(address,bytes)\":{\"details\":\"See {UUPSUpgradeable-upgradeToAndCall}\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"ITransparentUpgradeableProxy\"},\"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/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}},"TransparentUpgradeableProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"admin","type":"address"}],"name":"ERC1967InvalidAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"ProxyDeniedAdminAccess","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"}],"evm":{"bytecode":{"functionDebugData":{"@_2591":{"entryPoint":null,"id":2591,"parameterSlots":2,"returnSlots":0},"@_3055":{"entryPoint":null,"id":3055,"parameterSlots":3,"returnSlots":0},"@_checkNonPayable_2897":{"entryPoint":776,"id":2897,"parameterSlots":0,"returnSlots":0},"@_proxyAdmin_3064":{"entryPoint":329,"id":3064,"parameterSlots":0,"returnSlots":1},"@_revert_3386":{"entryPoint":1322,"id":3386,"parameterSlots":1,"returnSlots":0},"@_setAdmin_2761":{"entryPoint":930,"id":2761,"parameterSlots":1,"returnSlots":0},"@_setImplementation_2677":{"entryPoint":427,"id":2677,"parameterSlots":1,"returnSlots":0},"@changeAdmin_2780":{"entryPoint":339,"id":2780,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_3304":{"entryPoint":638,"id":3304,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_3643":{"entryPoint":1163,"id":3643,"parameterSlots":1,"returnSlots":1},"@getAdmin_2730":{"entryPoint":837,"id":2730,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_2713":{"entryPoint":196,"id":2713,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_3344":{"entryPoint":1173,"id":3344,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":1759,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":1825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory":{"entryPoint":1871,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1982,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2136,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1997,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":2024,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":1641,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1404,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1668,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2065,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2076,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1456,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1424,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1717,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1592,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1545,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1518,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1523,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1419,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1414,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1528,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1474,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5637:44","nodeType":"YulBlock","src":"0:5637:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"934:28:44","nodeType":"YulBlock","src":"934:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:44","nodeType":"YulLiteral","src":"951:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:44","nodeType":"YulLiteral","src":"954:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:44","nodeType":"YulIdentifier","src":"944:6:44"},"nativeSrc":"944:12:44","nodeType":"YulFunctionCall","src":"944:12:44"},"nativeSrc":"944:12:44","nodeType":"YulExpressionStatement","src":"944:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"845:117:44","nodeType":"YulFunctionDefinition","src":"845:117:44"},{"body":{"nativeSrc":"1057:28:44","nodeType":"YulBlock","src":"1057:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1074:1:44","nodeType":"YulLiteral","src":"1074:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1077:1:44","nodeType":"YulLiteral","src":"1077:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1067:6:44","nodeType":"YulIdentifier","src":"1067:6:44"},"nativeSrc":"1067:12:44","nodeType":"YulFunctionCall","src":"1067:12:44"},"nativeSrc":"1067:12:44","nodeType":"YulExpressionStatement","src":"1067:12:44"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"968:117:44","nodeType":"YulFunctionDefinition","src":"968:117:44"},{"body":{"nativeSrc":"1139:54:44","nodeType":"YulBlock","src":"1139:54:44","statements":[{"nativeSrc":"1149:38:44","nodeType":"YulAssignment","src":"1149:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1167:5:44","nodeType":"YulIdentifier","src":"1167:5:44"},{"kind":"number","nativeSrc":"1174:2:44","nodeType":"YulLiteral","src":"1174:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1163:3:44","nodeType":"YulIdentifier","src":"1163:3:44"},"nativeSrc":"1163:14:44","nodeType":"YulFunctionCall","src":"1163:14:44"},{"arguments":[{"kind":"number","nativeSrc":"1183:2:44","nodeType":"YulLiteral","src":"1183:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1179:3:44","nodeType":"YulIdentifier","src":"1179:3:44"},"nativeSrc":"1179:7:44","nodeType":"YulFunctionCall","src":"1179:7:44"}],"functionName":{"name":"and","nativeSrc":"1159:3:44","nodeType":"YulIdentifier","src":"1159:3:44"},"nativeSrc":"1159:28:44","nodeType":"YulFunctionCall","src":"1159:28:44"},"variableNames":[{"name":"result","nativeSrc":"1149:6:44","nodeType":"YulIdentifier","src":"1149:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1091:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1122:5:44","nodeType":"YulTypedName","src":"1122:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1132:6:44","nodeType":"YulTypedName","src":"1132:6:44","type":""}],"src":"1091:102:44"},{"body":{"nativeSrc":"1227:152:44","nodeType":"YulBlock","src":"1227:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1244:1:44","nodeType":"YulLiteral","src":"1244:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1247:77:44","nodeType":"YulLiteral","src":"1247:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1237:6:44","nodeType":"YulIdentifier","src":"1237:6:44"},"nativeSrc":"1237:88:44","nodeType":"YulFunctionCall","src":"1237:88:44"},"nativeSrc":"1237:88:44","nodeType":"YulExpressionStatement","src":"1237:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1341:1:44","nodeType":"YulLiteral","src":"1341:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"1344:4:44","nodeType":"YulLiteral","src":"1344:4:44","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1334:6:44","nodeType":"YulIdentifier","src":"1334:6:44"},"nativeSrc":"1334:15:44","nodeType":"YulFunctionCall","src":"1334:15:44"},"nativeSrc":"1334:15:44","nodeType":"YulExpressionStatement","src":"1334:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1365:1:44","nodeType":"YulLiteral","src":"1365:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1368:4:44","nodeType":"YulLiteral","src":"1368:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1358:6:44","nodeType":"YulIdentifier","src":"1358:6:44"},"nativeSrc":"1358:15:44","nodeType":"YulFunctionCall","src":"1358:15:44"},"nativeSrc":"1358:15:44","nodeType":"YulExpressionStatement","src":"1358:15:44"}]},"name":"panic_error_0x41","nativeSrc":"1199:180:44","nodeType":"YulFunctionDefinition","src":"1199:180:44"},{"body":{"nativeSrc":"1428:238:44","nodeType":"YulBlock","src":"1428:238:44","statements":[{"nativeSrc":"1438:58:44","nodeType":"YulVariableDeclaration","src":"1438:58:44","value":{"arguments":[{"name":"memPtr","nativeSrc":"1460:6:44","nodeType":"YulIdentifier","src":"1460:6:44"},{"arguments":[{"name":"size","nativeSrc":"1490:4:44","nodeType":"YulIdentifier","src":"1490:4:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1468:21:44","nodeType":"YulIdentifier","src":"1468:21:44"},"nativeSrc":"1468:27:44","nodeType":"YulFunctionCall","src":"1468:27:44"}],"functionName":{"name":"add","nativeSrc":"1456:3:44","nodeType":"YulIdentifier","src":"1456:3:44"},"nativeSrc":"1456:40:44","nodeType":"YulFunctionCall","src":"1456:40:44"},"variables":[{"name":"newFreePtr","nativeSrc":"1442:10:44","nodeType":"YulTypedName","src":"1442:10:44","type":""}]},{"body":{"nativeSrc":"1607:22:44","nodeType":"YulBlock","src":"1607:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1609:16:44","nodeType":"YulIdentifier","src":"1609:16:44"},"nativeSrc":"1609:18:44","nodeType":"YulFunctionCall","src":"1609:18:44"},"nativeSrc":"1609:18:44","nodeType":"YulExpressionStatement","src":"1609:18:44"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1550:10:44","nodeType":"YulIdentifier","src":"1550:10:44"},{"kind":"number","nativeSrc":"1562:18:44","nodeType":"YulLiteral","src":"1562:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1547:2:44","nodeType":"YulIdentifier","src":"1547:2:44"},"nativeSrc":"1547:34:44","nodeType":"YulFunctionCall","src":"1547:34:44"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1586:10:44","nodeType":"YulIdentifier","src":"1586:10:44"},{"name":"memPtr","nativeSrc":"1598:6:44","nodeType":"YulIdentifier","src":"1598:6:44"}],"functionName":{"name":"lt","nativeSrc":"1583:2:44","nodeType":"YulIdentifier","src":"1583:2:44"},"nativeSrc":"1583:22:44","nodeType":"YulFunctionCall","src":"1583:22:44"}],"functionName":{"name":"or","nativeSrc":"1544:2:44","nodeType":"YulIdentifier","src":"1544:2:44"},"nativeSrc":"1544:62:44","nodeType":"YulFunctionCall","src":"1544:62:44"},"nativeSrc":"1541:88:44","nodeType":"YulIf","src":"1541:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1645:2:44","nodeType":"YulLiteral","src":"1645:2:44","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1649:10:44","nodeType":"YulIdentifier","src":"1649:10:44"}],"functionName":{"name":"mstore","nativeSrc":"1638:6:44","nodeType":"YulIdentifier","src":"1638:6:44"},"nativeSrc":"1638:22:44","nodeType":"YulFunctionCall","src":"1638:22:44"},"nativeSrc":"1638:22:44","nodeType":"YulExpressionStatement","src":"1638:22:44"}]},"name":"finalize_allocation","nativeSrc":"1385:281:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1414:6:44","nodeType":"YulTypedName","src":"1414:6:44","type":""},{"name":"size","nativeSrc":"1422:4:44","nodeType":"YulTypedName","src":"1422:4:44","type":""}],"src":"1385:281:44"},{"body":{"nativeSrc":"1713:88:44","nodeType":"YulBlock","src":"1713:88:44","statements":[{"nativeSrc":"1723:30:44","nodeType":"YulAssignment","src":"1723:30:44","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1733:18:44","nodeType":"YulIdentifier","src":"1733:18:44"},"nativeSrc":"1733:20:44","nodeType":"YulFunctionCall","src":"1733:20:44"},"variableNames":[{"name":"memPtr","nativeSrc":"1723:6:44","nodeType":"YulIdentifier","src":"1723:6:44"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1782:6:44","nodeType":"YulIdentifier","src":"1782:6:44"},{"name":"size","nativeSrc":"1790:4:44","nodeType":"YulIdentifier","src":"1790:4:44"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1762:19:44","nodeType":"YulIdentifier","src":"1762:19:44"},"nativeSrc":"1762:33:44","nodeType":"YulFunctionCall","src":"1762:33:44"},"nativeSrc":"1762:33:44","nodeType":"YulExpressionStatement","src":"1762:33:44"}]},"name":"allocate_memory","nativeSrc":"1672:129:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1697:4:44","nodeType":"YulTypedName","src":"1697:4:44","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1706:6:44","nodeType":"YulTypedName","src":"1706:6:44","type":""}],"src":"1672:129:44"},{"body":{"nativeSrc":"1873:241:44","nodeType":"YulBlock","src":"1873:241:44","statements":[{"body":{"nativeSrc":"1978:22:44","nodeType":"YulBlock","src":"1978:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1980:16:44","nodeType":"YulIdentifier","src":"1980:16:44"},"nativeSrc":"1980:18:44","nodeType":"YulFunctionCall","src":"1980:18:44"},"nativeSrc":"1980:18:44","nodeType":"YulExpressionStatement","src":"1980:18:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1950:6:44","nodeType":"YulIdentifier","src":"1950:6:44"},{"kind":"number","nativeSrc":"1958:18:44","nodeType":"YulLiteral","src":"1958:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1947:2:44","nodeType":"YulIdentifier","src":"1947:2:44"},"nativeSrc":"1947:30:44","nodeType":"YulFunctionCall","src":"1947:30:44"},"nativeSrc":"1944:56:44","nodeType":"YulIf","src":"1944:56:44"},{"nativeSrc":"2010:37:44","nodeType":"YulAssignment","src":"2010:37:44","value":{"arguments":[{"name":"length","nativeSrc":"2040:6:44","nodeType":"YulIdentifier","src":"2040:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:44","nodeType":"YulIdentifier","src":"2018:21:44"},"nativeSrc":"2018:29:44","nodeType":"YulFunctionCall","src":"2018:29:44"},"variableNames":[{"name":"size","nativeSrc":"2010:4:44","nodeType":"YulIdentifier","src":"2010:4:44"}]},{"nativeSrc":"2084:23:44","nodeType":"YulAssignment","src":"2084:23:44","value":{"arguments":[{"name":"size","nativeSrc":"2096:4:44","nodeType":"YulIdentifier","src":"2096:4:44"},{"kind":"number","nativeSrc":"2102:4:44","nodeType":"YulLiteral","src":"2102:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2092:3:44","nodeType":"YulIdentifier","src":"2092:3:44"},"nativeSrc":"2092:15:44","nodeType":"YulFunctionCall","src":"2092:15:44"},"variableNames":[{"name":"size","nativeSrc":"2084:4:44","nodeType":"YulIdentifier","src":"2084:4:44"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"1807:307:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"1857:6:44","nodeType":"YulTypedName","src":"1857:6:44","type":""}],"returnVariables":[{"name":"size","nativeSrc":"1868:4:44","nodeType":"YulTypedName","src":"1868:4:44","type":""}],"src":"1807:307:44"},{"body":{"nativeSrc":"2182:186:44","nodeType":"YulBlock","src":"2182:186:44","statements":[{"nativeSrc":"2193:10:44","nodeType":"YulVariableDeclaration","src":"2193:10:44","value":{"kind":"number","nativeSrc":"2202:1:44","nodeType":"YulLiteral","src":"2202:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"2197:1:44","nodeType":"YulTypedName","src":"2197:1:44","type":""}]},{"body":{"nativeSrc":"2262:63:44","nodeType":"YulBlock","src":"2262:63:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2287:3:44","nodeType":"YulIdentifier","src":"2287:3:44"},{"name":"i","nativeSrc":"2292:1:44","nodeType":"YulIdentifier","src":"2292:1:44"}],"functionName":{"name":"add","nativeSrc":"2283:3:44","nodeType":"YulIdentifier","src":"2283:3:44"},"nativeSrc":"2283:11:44","nodeType":"YulFunctionCall","src":"2283:11:44"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2306:3:44","nodeType":"YulIdentifier","src":"2306:3:44"},{"name":"i","nativeSrc":"2311:1:44","nodeType":"YulIdentifier","src":"2311:1:44"}],"functionName":{"name":"add","nativeSrc":"2302:3:44","nodeType":"YulIdentifier","src":"2302:3:44"},"nativeSrc":"2302:11:44","nodeType":"YulFunctionCall","src":"2302:11:44"}],"functionName":{"name":"mload","nativeSrc":"2296:5:44","nodeType":"YulIdentifier","src":"2296:5:44"},"nativeSrc":"2296:18:44","nodeType":"YulFunctionCall","src":"2296:18:44"}],"functionName":{"name":"mstore","nativeSrc":"2276:6:44","nodeType":"YulIdentifier","src":"2276:6:44"},"nativeSrc":"2276:39:44","nodeType":"YulFunctionCall","src":"2276:39:44"},"nativeSrc":"2276:39:44","nodeType":"YulExpressionStatement","src":"2276:39:44"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"2223:1:44","nodeType":"YulIdentifier","src":"2223:1:44"},{"name":"length","nativeSrc":"2226:6:44","nodeType":"YulIdentifier","src":"2226:6:44"}],"functionName":{"name":"lt","nativeSrc":"2220:2:44","nodeType":"YulIdentifier","src":"2220:2:44"},"nativeSrc":"2220:13:44","nodeType":"YulFunctionCall","src":"2220:13:44"},"nativeSrc":"2212:113:44","nodeType":"YulForLoop","post":{"nativeSrc":"2234:19:44","nodeType":"YulBlock","src":"2234:19:44","statements":[{"nativeSrc":"2236:15:44","nodeType":"YulAssignment","src":"2236:15:44","value":{"arguments":[{"name":"i","nativeSrc":"2245:1:44","nodeType":"YulIdentifier","src":"2245:1:44"},{"kind":"number","nativeSrc":"2248:2:44","nodeType":"YulLiteral","src":"2248:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2241:3:44","nodeType":"YulIdentifier","src":"2241:3:44"},"nativeSrc":"2241:10:44","nodeType":"YulFunctionCall","src":"2241:10:44"},"variableNames":[{"name":"i","nativeSrc":"2236:1:44","nodeType":"YulIdentifier","src":"2236:1:44"}]}]},"pre":{"nativeSrc":"2216:3:44","nodeType":"YulBlock","src":"2216:3:44","statements":[]},"src":"2212:113:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2345:3:44","nodeType":"YulIdentifier","src":"2345:3:44"},{"name":"length","nativeSrc":"2350:6:44","nodeType":"YulIdentifier","src":"2350:6:44"}],"functionName":{"name":"add","nativeSrc":"2341:3:44","nodeType":"YulIdentifier","src":"2341:3:44"},"nativeSrc":"2341:16:44","nodeType":"YulFunctionCall","src":"2341:16:44"},{"kind":"number","nativeSrc":"2359:1:44","nodeType":"YulLiteral","src":"2359:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2334:6:44","nodeType":"YulIdentifier","src":"2334:6:44"},"nativeSrc":"2334:27:44","nodeType":"YulFunctionCall","src":"2334:27:44"},"nativeSrc":"2334:27:44","nodeType":"YulExpressionStatement","src":"2334:27:44"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2120:248:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2164:3:44","nodeType":"YulTypedName","src":"2164:3:44","type":""},{"name":"dst","nativeSrc":"2169:3:44","nodeType":"YulTypedName","src":"2169:3:44","type":""},{"name":"length","nativeSrc":"2174:6:44","nodeType":"YulTypedName","src":"2174:6:44","type":""}],"src":"2120:248:44"},{"body":{"nativeSrc":"2468:338:44","nodeType":"YulBlock","src":"2468:338:44","statements":[{"nativeSrc":"2478:74:44","nodeType":"YulAssignment","src":"2478:74:44","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"2544:6:44","nodeType":"YulIdentifier","src":"2544:6:44"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2503:40:44","nodeType":"YulIdentifier","src":"2503:40:44"},"nativeSrc":"2503:48:44","nodeType":"YulFunctionCall","src":"2503:48:44"}],"functionName":{"name":"allocate_memory","nativeSrc":"2487:15:44","nodeType":"YulIdentifier","src":"2487:15:44"},"nativeSrc":"2487:65:44","nodeType":"YulFunctionCall","src":"2487:65:44"},"variableNames":[{"name":"array","nativeSrc":"2478:5:44","nodeType":"YulIdentifier","src":"2478:5:44"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"2568:5:44","nodeType":"YulIdentifier","src":"2568:5:44"},{"name":"length","nativeSrc":"2575:6:44","nodeType":"YulIdentifier","src":"2575:6:44"}],"functionName":{"name":"mstore","nativeSrc":"2561:6:44","nodeType":"YulIdentifier","src":"2561:6:44"},"nativeSrc":"2561:21:44","nodeType":"YulFunctionCall","src":"2561:21:44"},"nativeSrc":"2561:21:44","nodeType":"YulExpressionStatement","src":"2561:21:44"},{"nativeSrc":"2591:27:44","nodeType":"YulVariableDeclaration","src":"2591:27:44","value":{"arguments":[{"name":"array","nativeSrc":"2606:5:44","nodeType":"YulIdentifier","src":"2606:5:44"},{"kind":"number","nativeSrc":"2613:4:44","nodeType":"YulLiteral","src":"2613:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2602:3:44","nodeType":"YulIdentifier","src":"2602:3:44"},"nativeSrc":"2602:16:44","nodeType":"YulFunctionCall","src":"2602:16:44"},"variables":[{"name":"dst","nativeSrc":"2595:3:44","nodeType":"YulTypedName","src":"2595:3:44","type":""}]},{"body":{"nativeSrc":"2656:83:44","nodeType":"YulBlock","src":"2656:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2658:77:44","nodeType":"YulIdentifier","src":"2658:77:44"},"nativeSrc":"2658:79:44","nodeType":"YulFunctionCall","src":"2658:79:44"},"nativeSrc":"2658:79:44","nodeType":"YulExpressionStatement","src":"2658:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2637:3:44","nodeType":"YulIdentifier","src":"2637:3:44"},{"name":"length","nativeSrc":"2642:6:44","nodeType":"YulIdentifier","src":"2642:6:44"}],"functionName":{"name":"add","nativeSrc":"2633:3:44","nodeType":"YulIdentifier","src":"2633:3:44"},"nativeSrc":"2633:16:44","nodeType":"YulFunctionCall","src":"2633:16:44"},{"name":"end","nativeSrc":"2651:3:44","nodeType":"YulIdentifier","src":"2651:3:44"}],"functionName":{"name":"gt","nativeSrc":"2630:2:44","nodeType":"YulIdentifier","src":"2630:2:44"},"nativeSrc":"2630:25:44","nodeType":"YulFunctionCall","src":"2630:25:44"},"nativeSrc":"2627:112:44","nodeType":"YulIf","src":"2627:112:44"},{"expression":{"arguments":[{"name":"src","nativeSrc":"2783:3:44","nodeType":"YulIdentifier","src":"2783:3:44"},{"name":"dst","nativeSrc":"2788:3:44","nodeType":"YulIdentifier","src":"2788:3:44"},{"name":"length","nativeSrc":"2793:6:44","nodeType":"YulIdentifier","src":"2793:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2748:34:44","nodeType":"YulIdentifier","src":"2748:34:44"},"nativeSrc":"2748:52:44","nodeType":"YulFunctionCall","src":"2748:52:44"},"nativeSrc":"2748:52:44","nodeType":"YulExpressionStatement","src":"2748:52:44"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"2374:432:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2441:3:44","nodeType":"YulTypedName","src":"2441:3:44","type":""},{"name":"length","nativeSrc":"2446:6:44","nodeType":"YulTypedName","src":"2446:6:44","type":""},{"name":"end","nativeSrc":"2454:3:44","nodeType":"YulTypedName","src":"2454:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2462:5:44","nodeType":"YulTypedName","src":"2462:5:44","type":""}],"src":"2374:432:44"},{"body":{"nativeSrc":"2897:281:44","nodeType":"YulBlock","src":"2897:281:44","statements":[{"body":{"nativeSrc":"2946:83:44","nodeType":"YulBlock","src":"2946:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2948:77:44","nodeType":"YulIdentifier","src":"2948:77:44"},"nativeSrc":"2948:79:44","nodeType":"YulFunctionCall","src":"2948:79:44"},"nativeSrc":"2948:79:44","nodeType":"YulExpressionStatement","src":"2948:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2925:6:44","nodeType":"YulIdentifier","src":"2925:6:44"},{"kind":"number","nativeSrc":"2933:4:44","nodeType":"YulLiteral","src":"2933:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2921:3:44","nodeType":"YulIdentifier","src":"2921:3:44"},"nativeSrc":"2921:17:44","nodeType":"YulFunctionCall","src":"2921:17:44"},{"name":"end","nativeSrc":"2940:3:44","nodeType":"YulIdentifier","src":"2940:3:44"}],"functionName":{"name":"slt","nativeSrc":"2917:3:44","nodeType":"YulIdentifier","src":"2917:3:44"},"nativeSrc":"2917:27:44","nodeType":"YulFunctionCall","src":"2917:27:44"}],"functionName":{"name":"iszero","nativeSrc":"2910:6:44","nodeType":"YulIdentifier","src":"2910:6:44"},"nativeSrc":"2910:35:44","nodeType":"YulFunctionCall","src":"2910:35:44"},"nativeSrc":"2907:122:44","nodeType":"YulIf","src":"2907:122:44"},{"nativeSrc":"3038:27:44","nodeType":"YulVariableDeclaration","src":"3038:27:44","value":{"arguments":[{"name":"offset","nativeSrc":"3058:6:44","nodeType":"YulIdentifier","src":"3058:6:44"}],"functionName":{"name":"mload","nativeSrc":"3052:5:44","nodeType":"YulIdentifier","src":"3052:5:44"},"nativeSrc":"3052:13:44","nodeType":"YulFunctionCall","src":"3052:13:44"},"variables":[{"name":"length","nativeSrc":"3042:6:44","nodeType":"YulTypedName","src":"3042:6:44","type":""}]},{"nativeSrc":"3074:98:44","nodeType":"YulAssignment","src":"3074:98:44","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3145:6:44","nodeType":"YulIdentifier","src":"3145:6:44"},{"kind":"number","nativeSrc":"3153:4:44","nodeType":"YulLiteral","src":"3153:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3141:3:44","nodeType":"YulIdentifier","src":"3141:3:44"},"nativeSrc":"3141:17:44","nodeType":"YulFunctionCall","src":"3141:17:44"},{"name":"length","nativeSrc":"3160:6:44","nodeType":"YulIdentifier","src":"3160:6:44"},{"name":"end","nativeSrc":"3168:3:44","nodeType":"YulIdentifier","src":"3168:3:44"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"3083:57:44","nodeType":"YulIdentifier","src":"3083:57:44"},"nativeSrc":"3083:89:44","nodeType":"YulFunctionCall","src":"3083:89:44"},"variableNames":[{"name":"array","nativeSrc":"3074:5:44","nodeType":"YulIdentifier","src":"3074:5:44"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"2825:353:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2875:6:44","nodeType":"YulTypedName","src":"2875:6:44","type":""},{"name":"end","nativeSrc":"2883:3:44","nodeType":"YulTypedName","src":"2883:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2891:5:44","nodeType":"YulTypedName","src":"2891:5:44","type":""}],"src":"2825:353:44"},{"body":{"nativeSrc":"3304:714:44","nodeType":"YulBlock","src":"3304:714:44","statements":[{"body":{"nativeSrc":"3350:83:44","nodeType":"YulBlock","src":"3350:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3352:77:44","nodeType":"YulIdentifier","src":"3352:77:44"},"nativeSrc":"3352:79:44","nodeType":"YulFunctionCall","src":"3352:79:44"},"nativeSrc":"3352:79:44","nodeType":"YulExpressionStatement","src":"3352:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3325:7:44","nodeType":"YulIdentifier","src":"3325:7:44"},{"name":"headStart","nativeSrc":"3334:9:44","nodeType":"YulIdentifier","src":"3334:9:44"}],"functionName":{"name":"sub","nativeSrc":"3321:3:44","nodeType":"YulIdentifier","src":"3321:3:44"},"nativeSrc":"3321:23:44","nodeType":"YulFunctionCall","src":"3321:23:44"},{"kind":"number","nativeSrc":"3346:2:44","nodeType":"YulLiteral","src":"3346:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3317:3:44","nodeType":"YulIdentifier","src":"3317:3:44"},"nativeSrc":"3317:32:44","nodeType":"YulFunctionCall","src":"3317:32:44"},"nativeSrc":"3314:119:44","nodeType":"YulIf","src":"3314:119:44"},{"nativeSrc":"3443:128:44","nodeType":"YulBlock","src":"3443:128:44","statements":[{"nativeSrc":"3458:15:44","nodeType":"YulVariableDeclaration","src":"3458:15:44","value":{"kind":"number","nativeSrc":"3472:1:44","nodeType":"YulLiteral","src":"3472:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3462:6:44","nodeType":"YulTypedName","src":"3462:6:44","type":""}]},{"nativeSrc":"3487:74:44","nodeType":"YulAssignment","src":"3487:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3533:9:44","nodeType":"YulIdentifier","src":"3533:9:44"},{"name":"offset","nativeSrc":"3544:6:44","nodeType":"YulIdentifier","src":"3544:6:44"}],"functionName":{"name":"add","nativeSrc":"3529:3:44","nodeType":"YulIdentifier","src":"3529:3:44"},"nativeSrc":"3529:22:44","nodeType":"YulFunctionCall","src":"3529:22:44"},{"name":"dataEnd","nativeSrc":"3553:7:44","nodeType":"YulIdentifier","src":"3553:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3497:31:44","nodeType":"YulIdentifier","src":"3497:31:44"},"nativeSrc":"3497:64:44","nodeType":"YulFunctionCall","src":"3497:64:44"},"variableNames":[{"name":"value0","nativeSrc":"3487:6:44","nodeType":"YulIdentifier","src":"3487:6:44"}]}]},{"nativeSrc":"3581:129:44","nodeType":"YulBlock","src":"3581:129:44","statements":[{"nativeSrc":"3596:16:44","nodeType":"YulVariableDeclaration","src":"3596:16:44","value":{"kind":"number","nativeSrc":"3610:2:44","nodeType":"YulLiteral","src":"3610:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3600:6:44","nodeType":"YulTypedName","src":"3600:6:44","type":""}]},{"nativeSrc":"3626:74:44","nodeType":"YulAssignment","src":"3626:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3672:9:44","nodeType":"YulIdentifier","src":"3672:9:44"},{"name":"offset","nativeSrc":"3683:6:44","nodeType":"YulIdentifier","src":"3683:6:44"}],"functionName":{"name":"add","nativeSrc":"3668:3:44","nodeType":"YulIdentifier","src":"3668:3:44"},"nativeSrc":"3668:22:44","nodeType":"YulFunctionCall","src":"3668:22:44"},{"name":"dataEnd","nativeSrc":"3692:7:44","nodeType":"YulIdentifier","src":"3692:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"3636:31:44","nodeType":"YulIdentifier","src":"3636:31:44"},"nativeSrc":"3636:64:44","nodeType":"YulFunctionCall","src":"3636:64:44"},"variableNames":[{"name":"value1","nativeSrc":"3626:6:44","nodeType":"YulIdentifier","src":"3626:6:44"}]}]},{"nativeSrc":"3720:291:44","nodeType":"YulBlock","src":"3720:291:44","statements":[{"nativeSrc":"3735:39:44","nodeType":"YulVariableDeclaration","src":"3735:39:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3759:9:44","nodeType":"YulIdentifier","src":"3759:9:44"},{"kind":"number","nativeSrc":"3770:2:44","nodeType":"YulLiteral","src":"3770:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3755:3:44","nodeType":"YulIdentifier","src":"3755:3:44"},"nativeSrc":"3755:18:44","nodeType":"YulFunctionCall","src":"3755:18:44"}],"functionName":{"name":"mload","nativeSrc":"3749:5:44","nodeType":"YulIdentifier","src":"3749:5:44"},"nativeSrc":"3749:25:44","nodeType":"YulFunctionCall","src":"3749:25:44"},"variables":[{"name":"offset","nativeSrc":"3739:6:44","nodeType":"YulTypedName","src":"3739:6:44","type":""}]},{"body":{"nativeSrc":"3821:83:44","nodeType":"YulBlock","src":"3821:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3823:77:44","nodeType":"YulIdentifier","src":"3823:77:44"},"nativeSrc":"3823:79:44","nodeType":"YulFunctionCall","src":"3823:79:44"},"nativeSrc":"3823:79:44","nodeType":"YulExpressionStatement","src":"3823:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3793:6:44","nodeType":"YulIdentifier","src":"3793:6:44"},{"kind":"number","nativeSrc":"3801:18:44","nodeType":"YulLiteral","src":"3801:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3790:2:44","nodeType":"YulIdentifier","src":"3790:2:44"},"nativeSrc":"3790:30:44","nodeType":"YulFunctionCall","src":"3790:30:44"},"nativeSrc":"3787:117:44","nodeType":"YulIf","src":"3787:117:44"},{"nativeSrc":"3918:83:44","nodeType":"YulAssignment","src":"3918:83:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3973:9:44","nodeType":"YulIdentifier","src":"3973:9:44"},{"name":"offset","nativeSrc":"3984:6:44","nodeType":"YulIdentifier","src":"3984:6:44"}],"functionName":{"name":"add","nativeSrc":"3969:3:44","nodeType":"YulIdentifier","src":"3969:3:44"},"nativeSrc":"3969:22:44","nodeType":"YulFunctionCall","src":"3969:22:44"},{"name":"dataEnd","nativeSrc":"3993:7:44","nodeType":"YulIdentifier","src":"3993:7:44"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"3928:40:44","nodeType":"YulIdentifier","src":"3928:40:44"},"nativeSrc":"3928:73:44","nodeType":"YulFunctionCall","src":"3928:73:44"},"variableNames":[{"name":"value2","nativeSrc":"3918:6:44","nodeType":"YulIdentifier","src":"3918:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory","nativeSrc":"3184:834:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3258:9:44","nodeType":"YulTypedName","src":"3258:9:44","type":""},{"name":"dataEnd","nativeSrc":"3269:7:44","nodeType":"YulTypedName","src":"3269:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3281:6:44","nodeType":"YulTypedName","src":"3281:6:44","type":""},{"name":"value1","nativeSrc":"3289:6:44","nodeType":"YulTypedName","src":"3289:6:44","type":""},{"name":"value2","nativeSrc":"3297:6:44","nodeType":"YulTypedName","src":"3297:6:44","type":""}],"src":"3184:834:44"},{"body":{"nativeSrc":"4089:53:44","nodeType":"YulBlock","src":"4089:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4106:3:44","nodeType":"YulIdentifier","src":"4106:3:44"},{"arguments":[{"name":"value","nativeSrc":"4129:5:44","nodeType":"YulIdentifier","src":"4129:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4111:17:44","nodeType":"YulIdentifier","src":"4111:17:44"},"nativeSrc":"4111:24:44","nodeType":"YulFunctionCall","src":"4111:24:44"}],"functionName":{"name":"mstore","nativeSrc":"4099:6:44","nodeType":"YulIdentifier","src":"4099:6:44"},"nativeSrc":"4099:37:44","nodeType":"YulFunctionCall","src":"4099:37:44"},"nativeSrc":"4099:37:44","nodeType":"YulExpressionStatement","src":"4099:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4024:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4077:5:44","nodeType":"YulTypedName","src":"4077:5:44","type":""},{"name":"pos","nativeSrc":"4084:3:44","nodeType":"YulTypedName","src":"4084:3:44","type":""}],"src":"4024:118:44"},{"body":{"nativeSrc":"4246:124:44","nodeType":"YulBlock","src":"4246:124:44","statements":[{"nativeSrc":"4256:26:44","nodeType":"YulAssignment","src":"4256:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4268:9:44","nodeType":"YulIdentifier","src":"4268:9:44"},{"kind":"number","nativeSrc":"4279:2:44","nodeType":"YulLiteral","src":"4279:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4264:3:44","nodeType":"YulIdentifier","src":"4264:3:44"},"nativeSrc":"4264:18:44","nodeType":"YulFunctionCall","src":"4264:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4256:4:44","nodeType":"YulIdentifier","src":"4256:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4336:6:44","nodeType":"YulIdentifier","src":"4336:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4349:9:44","nodeType":"YulIdentifier","src":"4349:9:44"},{"kind":"number","nativeSrc":"4360:1:44","nodeType":"YulLiteral","src":"4360:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4345:3:44","nodeType":"YulIdentifier","src":"4345:3:44"},"nativeSrc":"4345:17:44","nodeType":"YulFunctionCall","src":"4345:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4292:43:44","nodeType":"YulIdentifier","src":"4292:43:44"},"nativeSrc":"4292:71:44","nodeType":"YulFunctionCall","src":"4292:71:44"},"nativeSrc":"4292:71:44","nodeType":"YulExpressionStatement","src":"4292:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4148:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4218:9:44","nodeType":"YulTypedName","src":"4218:9:44","type":""},{"name":"value0","nativeSrc":"4230:6:44","nodeType":"YulTypedName","src":"4230:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4241:4:44","nodeType":"YulTypedName","src":"4241:4:44","type":""}],"src":"4148:222:44"},{"body":{"nativeSrc":"4502:206:44","nodeType":"YulBlock","src":"4502:206:44","statements":[{"nativeSrc":"4512:26:44","nodeType":"YulAssignment","src":"4512:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4524:9:44","nodeType":"YulIdentifier","src":"4524:9:44"},{"kind":"number","nativeSrc":"4535:2:44","nodeType":"YulLiteral","src":"4535:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4520:3:44","nodeType":"YulIdentifier","src":"4520:3:44"},"nativeSrc":"4520:18:44","nodeType":"YulFunctionCall","src":"4520:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4512:4:44","nodeType":"YulIdentifier","src":"4512:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4592:6:44","nodeType":"YulIdentifier","src":"4592:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4605:9:44","nodeType":"YulIdentifier","src":"4605:9:44"},{"kind":"number","nativeSrc":"4616:1:44","nodeType":"YulLiteral","src":"4616:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4601:3:44","nodeType":"YulIdentifier","src":"4601:3:44"},"nativeSrc":"4601:17:44","nodeType":"YulFunctionCall","src":"4601:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4548:43:44","nodeType":"YulIdentifier","src":"4548:43:44"},"nativeSrc":"4548:71:44","nodeType":"YulFunctionCall","src":"4548:71:44"},"nativeSrc":"4548:71:44","nodeType":"YulExpressionStatement","src":"4548:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4673:6:44","nodeType":"YulIdentifier","src":"4673:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4686:9:44","nodeType":"YulIdentifier","src":"4686:9:44"},{"kind":"number","nativeSrc":"4697:2:44","nodeType":"YulLiteral","src":"4697:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4682:3:44","nodeType":"YulIdentifier","src":"4682:3:44"},"nativeSrc":"4682:18:44","nodeType":"YulFunctionCall","src":"4682:18:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4629:43:44","nodeType":"YulIdentifier","src":"4629:43:44"},"nativeSrc":"4629:72:44","nodeType":"YulFunctionCall","src":"4629:72:44"},"nativeSrc":"4629:72:44","nodeType":"YulExpressionStatement","src":"4629:72:44"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"4376:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4466:9:44","nodeType":"YulTypedName","src":"4466:9:44","type":""},{"name":"value1","nativeSrc":"4478:6:44","nodeType":"YulTypedName","src":"4478:6:44","type":""},{"name":"value0","nativeSrc":"4486:6:44","nodeType":"YulTypedName","src":"4486:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4497:4:44","nodeType":"YulTypedName","src":"4497:4:44","type":""}],"src":"4376:332:44"},{"body":{"nativeSrc":"4772:40:44","nodeType":"YulBlock","src":"4772:40:44","statements":[{"nativeSrc":"4783:22:44","nodeType":"YulAssignment","src":"4783:22:44","value":{"arguments":[{"name":"value","nativeSrc":"4799:5:44","nodeType":"YulIdentifier","src":"4799:5:44"}],"functionName":{"name":"mload","nativeSrc":"4793:5:44","nodeType":"YulIdentifier","src":"4793:5:44"},"nativeSrc":"4793:12:44","nodeType":"YulFunctionCall","src":"4793:12:44"},"variableNames":[{"name":"length","nativeSrc":"4783:6:44","nodeType":"YulIdentifier","src":"4783:6:44"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4714:98:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4755:5:44","nodeType":"YulTypedName","src":"4755:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4765:6:44","nodeType":"YulTypedName","src":"4765:6:44","type":""}],"src":"4714:98:44"},{"body":{"nativeSrc":"4931:34:44","nodeType":"YulBlock","src":"4931:34:44","statements":[{"nativeSrc":"4941:18:44","nodeType":"YulAssignment","src":"4941:18:44","value":{"name":"pos","nativeSrc":"4956:3:44","nodeType":"YulIdentifier","src":"4956:3:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"4941:11:44","nodeType":"YulIdentifier","src":"4941:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4818:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4903:3:44","nodeType":"YulTypedName","src":"4903:3:44","type":""},{"name":"length","nativeSrc":"4908:6:44","nodeType":"YulTypedName","src":"4908:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4919:11:44","nodeType":"YulTypedName","src":"4919:11:44","type":""}],"src":"4818:147:44"},{"body":{"nativeSrc":"5079:278:44","nodeType":"YulBlock","src":"5079:278:44","statements":[{"nativeSrc":"5089:52:44","nodeType":"YulVariableDeclaration","src":"5089:52:44","value":{"arguments":[{"name":"value","nativeSrc":"5135:5:44","nodeType":"YulIdentifier","src":"5135:5:44"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5103:31:44","nodeType":"YulIdentifier","src":"5103:31:44"},"nativeSrc":"5103:38:44","nodeType":"YulFunctionCall","src":"5103:38:44"},"variables":[{"name":"length","nativeSrc":"5093:6:44","nodeType":"YulTypedName","src":"5093:6:44","type":""}]},{"nativeSrc":"5150:95:44","nodeType":"YulAssignment","src":"5150:95:44","value":{"arguments":[{"name":"pos","nativeSrc":"5233:3:44","nodeType":"YulIdentifier","src":"5233:3:44"},{"name":"length","nativeSrc":"5238:6:44","nodeType":"YulIdentifier","src":"5238:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5157:75:44","nodeType":"YulIdentifier","src":"5157:75:44"},"nativeSrc":"5157:88:44","nodeType":"YulFunctionCall","src":"5157:88:44"},"variableNames":[{"name":"pos","nativeSrc":"5150:3:44","nodeType":"YulIdentifier","src":"5150:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5293:5:44","nodeType":"YulIdentifier","src":"5293:5:44"},{"kind":"number","nativeSrc":"5300:4:44","nodeType":"YulLiteral","src":"5300:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5289:3:44","nodeType":"YulIdentifier","src":"5289:3:44"},"nativeSrc":"5289:16:44","nodeType":"YulFunctionCall","src":"5289:16:44"},{"name":"pos","nativeSrc":"5307:3:44","nodeType":"YulIdentifier","src":"5307:3:44"},{"name":"length","nativeSrc":"5312:6:44","nodeType":"YulIdentifier","src":"5312:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5254:34:44","nodeType":"YulIdentifier","src":"5254:34:44"},"nativeSrc":"5254:65:44","nodeType":"YulFunctionCall","src":"5254:65:44"},"nativeSrc":"5254:65:44","nodeType":"YulExpressionStatement","src":"5254:65:44"},{"nativeSrc":"5328:23:44","nodeType":"YulAssignment","src":"5328:23:44","value":{"arguments":[{"name":"pos","nativeSrc":"5339:3:44","nodeType":"YulIdentifier","src":"5339:3:44"},{"name":"length","nativeSrc":"5344:6:44","nodeType":"YulIdentifier","src":"5344:6:44"}],"functionName":{"name":"add","nativeSrc":"5335:3:44","nodeType":"YulIdentifier","src":"5335:3:44"},"nativeSrc":"5335:16:44","nodeType":"YulFunctionCall","src":"5335:16:44"},"variableNames":[{"name":"end","nativeSrc":"5328:3:44","nodeType":"YulIdentifier","src":"5328:3:44"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4971:386:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5060:5:44","nodeType":"YulTypedName","src":"5060:5:44","type":""},{"name":"pos","nativeSrc":"5067:3:44","nodeType":"YulTypedName","src":"5067:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5075:3:44","nodeType":"YulTypedName","src":"5075:3:44","type":""}],"src":"4971:386:44"},{"body":{"nativeSrc":"5497:137:44","nodeType":"YulBlock","src":"5497:137:44","statements":[{"nativeSrc":"5508:100:44","nodeType":"YulAssignment","src":"5508:100:44","value":{"arguments":[{"name":"value0","nativeSrc":"5595:6:44","nodeType":"YulIdentifier","src":"5595:6:44"},{"name":"pos","nativeSrc":"5604:3:44","nodeType":"YulIdentifier","src":"5604:3:44"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5515:79:44","nodeType":"YulIdentifier","src":"5515:79:44"},"nativeSrc":"5515:93:44","nodeType":"YulFunctionCall","src":"5515:93:44"},"variableNames":[{"name":"pos","nativeSrc":"5508:3:44","nodeType":"YulIdentifier","src":"5508:3:44"}]},{"nativeSrc":"5618:10:44","nodeType":"YulAssignment","src":"5618:10:44","value":{"name":"pos","nativeSrc":"5625:3:44","nodeType":"YulIdentifier","src":"5625:3:44"},"variableNames":[{"name":"end","nativeSrc":"5618:3:44","nodeType":"YulIdentifier","src":"5618:3:44"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5363:271:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5476:3:44","nodeType":"YulTypedName","src":"5476:3:44","type":""},{"name":"value0","nativeSrc":"5482:6:44","nodeType":"YulTypedName","src":"5482:6:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5493:3:44","nodeType":"YulTypedName","src":"5493:3:44","type":""}],"src":"5363:271:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function 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_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 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_bytes_memory_ptr_fromMemory(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_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_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_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value2 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a0604052604051611ae5380380611ae58339818101604052810190610025919061074f565b828161003782826100c460201b60201c565b5050816040516100469061056f565b61005091906107cd565b604051809103906000f08015801561006c573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100bc6100b161014960201b60201c565b61015360201b60201c565b50505061086f565b6100d3826101ab60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a260008151111561013657610130828261027e60201b60201c565b50610145565b61014461030860201b60201c565b5b5050565b6000608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61018261034560201b60201c565b826040516101919291906107e8565b60405180910390a16101a8816103a260201b60201c565b50565b60008173ffffffffffffffffffffffffffffffffffffffff163b0361020757806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101fe91906107cd565b60405180910390fd5b8061023a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff16846040516102a89190610858565b600060405180830381855af49150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091506102fe85838361049560201b60201c565b9250505092915050565b6000341115610343576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103797fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104145760006040517f62e77ba200000000000000000000000000000000000000000000000000000000815260040161040b91906107cd565b60405180910390fd5b806104477fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b61048b60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000819050919050565b6060826104b0576104ab8261052a60201b60201c565b610522565b600082511480156104d8575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561051a57836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161051191906107cd565b60405180910390fd5b819050610523565b5b9392505050565b60008151111561053d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2b806110ba83390190565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105bb82610590565b9050919050565b6105cb816105b0565b81146105d657600080fd5b50565b6000815190506105e8816105c2565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610641826105f8565b810181811067ffffffffffffffff821117156106605761065f610609565b5b80604052505050565b600061067361057c565b905061067f8282610638565b919050565b600067ffffffffffffffff82111561069f5761069e610609565b5b6106a8826105f8565b9050602081019050919050565b60005b838110156106d35780820151818401526020810190506106b8565b60008484015250505050565b60006106f26106ed84610684565b610669565b90508281526020810184848401111561070e5761070d6105f3565b5b6107198482856106b5565b509392505050565b600082601f830112610736576107356105ee565b5b81516107468482602086016106df565b91505092915050565b60008060006060848603121561076857610767610586565b5b6000610776868287016105d9565b9350506020610787868287016105d9565b925050604084015167ffffffffffffffff8111156107a8576107a761058b565b5b6107b486828701610721565b9150509250925092565b6107c7816105b0565b82525050565b60006020820190506107e260008301846107be565b92915050565b60006040820190506107fd60008301856107be565b61080a60208301846107be565b9392505050565b600081519050919050565b600081905092915050565b600061083282610811565b61083c818561081c565b935061084c8185602086016106b5565b80840191505092915050565b60006108648284610827565b915081905092915050565b60805161083061088a600039600061010601526108306000f3fe608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033608060405234801561001057600080fd5b50604051610a2b380380610a2b833981810160405281019061003291906101e2565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a55760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009c919061021e565b60405180910390fd5b6100b4816100bb60201b60201c565b5050610239565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101af82610184565b9050919050565b6101bf816101a4565b81146101ca57600080fd5b50565b6000815190506101dc816101b6565b92915050565b6000602082840312156101f8576101f761017f565b5b6000610206848285016101cd565b91505092915050565b610218816101a4565b82525050565b6000602082019050610233600083018461020f565b92915050565b6107e3806102486000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610091578063ad3cb1cc146100ad578063f2fde38b146100d8575b600080fd5b34801561005b57600080fd5b50610064610101565b005b34801561007257600080fd5b5061007b610115565b604051610088919061040c565b60405180910390f35b6100ab60048036038101906100a691906105eb565b61013e565b005b3480156100b957600080fd5b506100c26101b9565b6040516100cf91906106d9565b60405180910390f35b3480156100e457600080fd5b506100ff60048036038101906100fa91906106fb565b6101f2565b005b610109610278565b61011360006102ff565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610146610278565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161018292919061077d565b6000604051808303818588803b15801561019b57600080fd5b505af11580156101af573d6000803e3d6000fd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101fa610278565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361026c5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610263919061040c565b60405180910390fd5b610275816102ff565b50565b6102806103c3565b73ffffffffffffffffffffffffffffffffffffffff1661029e610115565b73ffffffffffffffffffffffffffffffffffffffff16146102fd576102c16103c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102f4919061040c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103f6826103cb565b9050919050565b610406816103eb565b82525050565b600060208201905061042160008301846103fd565b92915050565b6000604051905090565b600080fd5b600080fd5b6000610446826103eb565b9050919050565b6104568161043b565b811461046157600080fd5b50565b6000813590506104738161044d565b92915050565b610482816103eb565b811461048d57600080fd5b50565b60008135905061049f81610479565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104f8826104af565b810181811067ffffffffffffffff82111715610517576105166104c0565b5b80604052505050565b600061052a610427565b905061053682826104ef565b919050565b600067ffffffffffffffff821115610556576105556104c0565b5b61055f826104af565b9050602081019050919050565b82818337600083830152505050565b600061058e6105898461053b565b610520565b9050828152602081018484840111156105aa576105a96104aa565b5b6105b584828561056c565b509392505050565b600082601f8301126105d2576105d16104a5565b5b81356105e284826020860161057b565b91505092915050565b60008060006060848603121561060457610603610431565b5b600061061286828701610464565b935050602061062386828701610490565b925050604084013567ffffffffffffffff81111561064457610643610436565b5b610650868287016105bd565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b83811015610694578082015181840152602081019050610679565b60008484015250505050565b60006106ab8261065a565b6106b58185610665565b93506106c5818560208601610676565b6106ce816104af565b840191505092915050565b600060208201905081810360008301526106f381846106a0565b905092915050565b60006020828403121561071157610710610431565b5b600061071f84828501610490565b91505092915050565b600081519050919050565b600082825260208201905092915050565b600061074f82610728565b6107598185610733565b9350610769818560208601610676565b610772816104af565b840191505092915050565b600060408201905061079260008301856103fd565b81810360208301526107a48184610744565b9050939250505056fea264697066735822122027b558e0ef5b8621406e87e0a379c68e322fc469041076690091b2783bca57c964736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x1AE5 CODESIZE SUB DUP1 PUSH2 0x1AE5 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0x74F JUMP JUMPDEST DUP3 DUP2 PUSH2 0x37 DUP3 DUP3 PUSH2 0xC4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP DUP2 PUSH1 0x40 MLOAD PUSH2 0x46 SWAP1 PUSH2 0x56F JUMP JUMPDEST PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0xBC PUSH2 0xB1 PUSH2 0x149 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x153 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP PUSH2 0x86F JUMP JUMPDEST PUSH2 0xD3 DUP3 PUSH2 0x1AB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x136 JUMPI PUSH2 0x130 DUP3 DUP3 PUSH2 0x27E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x145 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x308 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH2 0x182 PUSH2 0x345 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH2 0x191 SWAP3 SWAP2 SWAP1 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x1A8 DUP2 PUSH2 0x3A2 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x207 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x23A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x858 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2E3 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 0x2E8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2FE DUP6 DUP4 DUP4 PUSH2 0x495 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x343 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x379 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x414 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x62E77BA200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x447 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 PUSH1 0x0 SHL PUSH2 0x48B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x4B0 JUMPI PUSH2 0x4AB DUP3 PUSH2 0x52A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x522 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x4D8 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x51A JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x511 SWAP2 SWAP1 PUSH2 0x7CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x523 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x53D JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD6BDA27500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA2B DUP1 PUSH2 0x10BA DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5BB DUP3 PUSH2 0x590 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5CB DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP2 EQ PUSH2 0x5D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5E8 DUP2 PUSH2 0x5C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x641 DUP3 PUSH2 0x5F8 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x660 JUMPI PUSH2 0x65F PUSH2 0x609 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x673 PUSH2 0x57C JUMP JUMPDEST SWAP1 POP PUSH2 0x67F DUP3 DUP3 PUSH2 0x638 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x69F JUMPI PUSH2 0x69E PUSH2 0x609 JUMP JUMPDEST JUMPDEST PUSH2 0x6A8 DUP3 PUSH2 0x5F8 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x6D3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x6B8 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F2 PUSH2 0x6ED DUP5 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x669 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x70E JUMPI PUSH2 0x70D PUSH2 0x5F3 JUMP JUMPDEST JUMPDEST PUSH2 0x719 DUP5 DUP3 DUP6 PUSH2 0x6B5 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x5EE JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x746 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x6DF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x768 JUMPI PUSH2 0x767 PUSH2 0x586 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x776 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x787 DUP7 DUP3 DUP8 ADD PUSH2 0x5D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7A8 JUMPI PUSH2 0x7A7 PUSH2 0x58B JUMP JUMPDEST JUMPDEST PUSH2 0x7B4 DUP7 DUP3 DUP8 ADD PUSH2 0x721 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x7C7 DUP2 PUSH2 0x5B0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7E2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7FD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x80A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7BE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x832 DUP3 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x83C DUP2 DUP6 PUSH2 0x81C JUMP JUMPDEST SWAP4 POP PUSH2 0x84C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x6B5 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x864 DUP3 DUP5 PUSH2 0x827 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x830 PUSH2 0x88A PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x106 ADD MSTORE PUSH2 0x830 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C 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 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD6BDA27500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E 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 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xA2B CODESIZE SUB DUP1 PUSH2 0xA2B DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x1E2 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA5 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C SWAP2 SWAP1 PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB4 DUP2 PUSH2 0xBB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 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 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF DUP3 PUSH2 0x184 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BF DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP2 EQ PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1DC DUP2 PUSH2 0x1B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F8 JUMPI PUSH2 0x1F7 PUSH2 0x17F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x206 DUP5 DUP3 DUP6 ADD PUSH2 0x1CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x218 DUP2 PUSH2 0x1A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x233 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x20F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7E3 DUP1 PUSH2 0x248 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x9623609D EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xAD3CB1CC EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xD8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x64 PUSH2 0x101 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x88 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA6 SWAP2 SWAP1 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x13E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x6D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFA SWAP2 SWAP1 PUSH2 0x6FB JUMP JUMPDEST PUSH2 0x1F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x113 PUSH1 0x0 PUSH2 0x2FF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x278 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4F1EF286 CALLVALUE DUP5 DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x182 SWAP3 SWAP2 SWAP1 PUSH2 0x77D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x352E302E30000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x1FA PUSH2 0x278 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x26C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x275 DUP2 PUSH2 0x2FF JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x280 PUSH2 0x3C3 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x29E PUSH2 0x115 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2FD JUMPI PUSH2 0x2C1 PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP2 SWAP1 PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F6 DUP3 PUSH2 0x3CB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x406 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x421 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x3FD JUMP JUMPDEST SWAP3 SWAP2 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 PUSH2 0x446 DUP3 PUSH2 0x3EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x456 DUP2 PUSH2 0x43B JUMP JUMPDEST DUP2 EQ PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x473 DUP2 PUSH2 0x44D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x482 DUP2 PUSH2 0x3EB JUMP JUMPDEST DUP2 EQ PUSH2 0x48D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49F DUP2 PUSH2 0x479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x4F8 DUP3 PUSH2 0x4AF JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x517 JUMPI PUSH2 0x516 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52A PUSH2 0x427 JUMP JUMPDEST SWAP1 POP PUSH2 0x536 DUP3 DUP3 PUSH2 0x4EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x555 PUSH2 0x4C0 JUMP JUMPDEST JUMPDEST PUSH2 0x55F DUP3 PUSH2 0x4AF 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 0x58E PUSH2 0x589 DUP5 PUSH2 0x53B JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5AA JUMPI PUSH2 0x5A9 PUSH2 0x4AA JUMP JUMPDEST JUMPDEST PUSH2 0x5B5 DUP5 DUP3 DUP6 PUSH2 0x56C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x5D2 JUMPI PUSH2 0x5D1 PUSH2 0x4A5 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5E2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x57B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x612 DUP7 DUP3 DUP8 ADD PUSH2 0x464 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x623 DUP7 DUP3 DUP8 ADD PUSH2 0x490 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x644 JUMPI PUSH2 0x643 PUSH2 0x436 JUMP JUMPDEST JUMPDEST PUSH2 0x650 DUP7 DUP3 DUP8 ADD PUSH2 0x5BD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x694 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x679 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AB DUP3 PUSH2 0x65A JUMP JUMPDEST PUSH2 0x6B5 DUP2 DUP6 PUSH2 0x665 JUMP JUMPDEST SWAP4 POP PUSH2 0x6C5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x6CE DUP2 PUSH2 0x4AF 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 0x6F3 DUP2 DUP5 PUSH2 0x6A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x711 JUMPI PUSH2 0x710 PUSH2 0x431 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x71F DUP5 DUP3 DUP6 ADD PUSH2 0x490 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74F DUP3 PUSH2 0x728 JUMP JUMPDEST PUSH2 0x759 DUP2 DUP6 PUSH2 0x733 JUMP JUMPDEST SWAP4 POP PUSH2 0x769 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x676 JUMP JUMPDEST PUSH2 0x772 DUP2 PUSH2 0x4AF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x792 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x3FD JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7A4 DUP2 DUP5 PUSH2 0x744 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 0xB5 PC 0xE0 0xEF JUMPDEST DUP7 0x21 BLOCKHASH PUSH15 0x87E0A379C68E322FC4690410766900 SWAP2 0xB2 PUSH25 0x3BCA57C964736F6C634300081C003300000000000000000000 ","sourceMap":"4314:2231:18:-:0;;;5157:296;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5248:6;5256:5;1155:52:13;1185:14;1201:5;1155:29;;;:52;;:::i;:::-;1081:133;;5305:12:18::1;5290:28;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5273:46;;;;;;;;::::0;::::1;5407:39;5432:13;:11;;;:13;;:::i;:::-;5407:24;;;:39;;:::i;:::-;5157:296:::0;;;4314:2231;;2264:344:14;2355:37;2374:17;2355:18;;;:37;;:::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;;;:53;;:::i;:::-;;2454:148;;;2573:18;:16;;;:18;;:::i;:::-;2454:148;2264:344;;:::o;5520:93:18:-;5574:7;5600:6;;5593:13;;5520:93;:::o;3827:142:14:-;3890:43;3912:10;:8;;;:10;;:::i;:::-;3924:8;3890:43;;;;;;;:::i;:::-;;;;;;;;3943:19;3953:8;3943:9;;;:19;;:::i;:::-;3827:142;:::o;1671:281::-;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;;;:47;;:::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;;;:55;;:::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;3287:120::-;3330:7;3356:38;2868:66;3383:10;;3356:26;;;:38;;:::i;:::-;:44;;;;;;;;;;;;3349:51;;3287:120;:::o;3490:217::-;3569:1;3549:22;;:8;:22;;;3545:91;;3622:1;3594:31;;;;;;;;;;;:::i;:::-;;;;;;;;3545:91;3692:8;3645:38;2868:66;3672:10;;3645:26;;;:38;;:::i;:::-;:44;;;:55;;;;;;;;;;;;;;;;;;3490:217;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;;;:19;;:::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;4314:2231:18;;;;;;;;:::o;7:75:44:-;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:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:307::-;1868:4;1958:18;1950:6;1947:30;1944:56;;;1980:18;;:::i;:::-;1944:56;2018:29;2040:6;2018:29;:::i;:::-;2010:37;;2102:4;2096;2092:15;2084:23;;1807:307;;;:::o;2120:248::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2182:186;2120:248;;;:::o;2374:432::-;2462:5;2487:65;2503:48;2544:6;2503:48;:::i;:::-;2487:65;:::i;:::-;2478:74;;2575:6;2568:5;2561:21;2613:4;2606:5;2602:16;2651:3;2642:6;2637:3;2633:16;2630:25;2627:112;;;2658:79;;:::i;:::-;2627:112;2748:52;2793:6;2788:3;2783;2748:52;:::i;:::-;2468:338;2374:432;;;;;:::o;2825:353::-;2891:5;2940:3;2933:4;2925:6;2921:17;2917:27;2907:122;;2948:79;;:::i;:::-;2907:122;3058:6;3052:13;3083:89;3168:3;3160:6;3153:4;3145:6;3141:17;3083:89;:::i;:::-;3074:98;;2897:281;2825:353;;;;:::o;3184:834::-;3281:6;3289;3297;3346:2;3334:9;3325:7;3321:23;3317:32;3314:119;;;3352:79;;:::i;:::-;3314:119;3472:1;3497:64;3553:7;3544:6;3533:9;3529:22;3497:64;:::i;:::-;3487:74;;3443:128;3610:2;3636:64;3692:7;3683:6;3672:9;3668:22;3636:64;:::i;:::-;3626:74;;3581:129;3770:2;3759:9;3755:18;3749:25;3801:18;3793:6;3790:30;3787:117;;;3823:79;;:::i;:::-;3787:117;3928:73;3993:7;3984:6;3973:9;3969:22;3928:73;:::i;:::-;3918:83;;3720:291;3184:834;;;;;:::o;4024:118::-;4111:24;4129:5;4111:24;:::i;:::-;4106:3;4099:37;4024:118;;:::o;4148:222::-;4241:4;4279:2;4268:9;4264:18;4256:26;;4292:71;4360:1;4349:9;4345:17;4336:6;4292:71;:::i;:::-;4148:222;;;;:::o;4376:332::-;4497:4;4535:2;4524:9;4520:18;4512:26;;4548:71;4616:1;4605:9;4601:17;4592:6;4548:71;:::i;:::-;4629:72;4697:2;4686:9;4682:18;4673:6;4629:72;:::i;:::-;4376:332;;;;;:::o;4714:98::-;4765:6;4799:5;4793:12;4783:22;;4714:98;;;:::o;4818:147::-;4919:11;4956:3;4941:18;;4818:147;;;;:::o;4971:386::-;5075:3;5103:38;5135:5;5103:38;:::i;:::-;5157:88;5238:6;5233:3;5157:88;:::i;:::-;5150:95;;5254:65;5312:6;5307:3;5300:4;5293:5;5289:16;5254:65;:::i;:::-;5344:6;5339:3;5335:16;5328:23;;5079:278;4971:386;;;;:::o;5363:271::-;5493:3;5515:93;5604:3;5595:6;5515:93;:::i;:::-;5508:100;;5625:3;5618:10;;5363:271;;;;:::o;4314:2231:18:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_2933":{"entryPoint":null,"id":2933,"parameterSlots":0,"returnSlots":0},"@_checkNonPayable_2897":{"entryPoint":875,"id":2897,"parameterSlots":0,"returnSlots":0},"@_delegate_2909":{"entryPoint":500,"id":2909,"parameterSlots":1,"returnSlots":0},"@_dispatchUpgradeToAndCall_3127":{"entryPoint":298,"id":3127,"parameterSlots":0,"returnSlots":0},"@_fallback_2925":{"entryPoint":352,"id":2925,"parameterSlots":0,"returnSlots":0},"@_fallback_3098":{"entryPoint":14,"id":3098,"parameterSlots":0,"returnSlots":0},"@_implementation_2603":{"entryPoint":485,"id":2603,"parameterSlots":0,"returnSlots":1},"@_proxyAdmin_3064":{"entryPoint":258,"id":3064,"parameterSlots":0,"returnSlots":1},"@_revert_3386":{"entryPoint":1176,"id":3386,"parameterSlots":1,"returnSlots":0},"@_setImplementation_2677":{"entryPoint":538,"id":2677,"parameterSlots":1,"returnSlots":0},"@functionDelegateCall_3304":{"entryPoint":743,"id":3304,"parameterSlots":2,"returnSlots":1},"@getAddressSlot_3643":{"entryPoint":1023,"id":3643,"parameterSlots":1,"returnSlots":1},"@getImplementation_2650":{"entryPoint":936,"id":2650,"parameterSlots":0,"returnSlots":1},"@upgradeToAndCall_2713":{"entryPoint":370,"id":2713,"parameterSlots":2,"returnSlots":0},"@verifyCallResultFromTarget_3344":{"entryPoint":1033,"id":3344,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":1642,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":1407,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":1708,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes_memory_ptr":{"entryPoint":1754,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1864,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1970,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1879,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1551,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1245,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":1578,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":1906,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1917,"id":null,"parameterSlots":2,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":1265,"id":null,"parameterSlots":4,"returnSlots":2},"cleanup_t_address":{"entryPoint":1846,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":1366,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1334,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1627,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":1928,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":1502,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":1455,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":1428,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c":{"entryPoint":1260,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a":{"entryPoint":1255,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":1433,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1329,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1324,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1438,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address_payable":{"entryPoint":1384,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6122:44","nodeType":"YulBlock","src":"0:6122:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"460:343:44","nodeType":"YulBlock","src":"460:343:44","statements":[{"body":{"nativeSrc":"498:83:44","nodeType":"YulBlock","src":"498:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a","nativeSrc":"500:77:44","nodeType":"YulIdentifier","src":"500:77:44"},"nativeSrc":"500:79:44","nodeType":"YulFunctionCall","src":"500:79:44"},"nativeSrc":"500:79:44","nodeType":"YulExpressionStatement","src":"500:79:44"}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"476:10:44","nodeType":"YulIdentifier","src":"476:10:44"},{"name":"endIndex","nativeSrc":"488:8:44","nodeType":"YulIdentifier","src":"488:8:44"}],"functionName":{"name":"gt","nativeSrc":"473:2:44","nodeType":"YulIdentifier","src":"473:2:44"},"nativeSrc":"473:24:44","nodeType":"YulFunctionCall","src":"473:24:44"},"nativeSrc":"470:111:44","nodeType":"YulIf","src":"470:111:44"},{"body":{"nativeSrc":"614:83:44","nodeType":"YulBlock","src":"614:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c","nativeSrc":"616:77:44","nodeType":"YulIdentifier","src":"616:77:44"},"nativeSrc":"616:79:44","nodeType":"YulFunctionCall","src":"616:79:44"},"nativeSrc":"616:79:44","nodeType":"YulExpressionStatement","src":"616:79:44"}]},"condition":{"arguments":[{"name":"endIndex","nativeSrc":"596:8:44","nodeType":"YulIdentifier","src":"596:8:44"},{"name":"length","nativeSrc":"606:6:44","nodeType":"YulIdentifier","src":"606:6:44"}],"functionName":{"name":"gt","nativeSrc":"593:2:44","nodeType":"YulIdentifier","src":"593:2:44"},"nativeSrc":"593:20:44","nodeType":"YulFunctionCall","src":"593:20:44"},"nativeSrc":"590:107:44","nodeType":"YulIf","src":"590:107:44"},{"nativeSrc":"706:44:44","nodeType":"YulAssignment","src":"706:44:44","value":{"arguments":[{"name":"offset","nativeSrc":"723:6:44","nodeType":"YulIdentifier","src":"723:6:44"},{"arguments":[{"name":"startIndex","nativeSrc":"735:10:44","nodeType":"YulIdentifier","src":"735:10:44"},{"kind":"number","nativeSrc":"747:1:44","nodeType":"YulLiteral","src":"747:1:44","type":"","value":"1"}],"functionName":{"name":"mul","nativeSrc":"731:3:44","nodeType":"YulIdentifier","src":"731:3:44"},"nativeSrc":"731:18:44","nodeType":"YulFunctionCall","src":"731:18:44"}],"functionName":{"name":"add","nativeSrc":"719:3:44","nodeType":"YulIdentifier","src":"719:3:44"},"nativeSrc":"719:31:44","nodeType":"YulFunctionCall","src":"719:31:44"},"variableNames":[{"name":"offsetOut","nativeSrc":"706:9:44","nodeType":"YulIdentifier","src":"706:9:44"}]},{"nativeSrc":"759:38:44","nodeType":"YulAssignment","src":"759:38:44","value":{"arguments":[{"name":"endIndex","nativeSrc":"776:8:44","nodeType":"YulIdentifier","src":"776:8:44"},{"name":"startIndex","nativeSrc":"786:10:44","nodeType":"YulIdentifier","src":"786:10:44"}],"functionName":{"name":"sub","nativeSrc":"772:3:44","nodeType":"YulIdentifier","src":"772:3:44"},"nativeSrc":"772:25:44","nodeType":"YulFunctionCall","src":"772:25:44"},"variableNames":[{"name":"lengthOut","nativeSrc":"759:9:44","nodeType":"YulIdentifier","src":"759:9:44"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nativeSrc":"334:469:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"398:6:44","nodeType":"YulTypedName","src":"398:6:44","type":""},{"name":"length","nativeSrc":"406:6:44","nodeType":"YulTypedName","src":"406:6:44","type":""},{"name":"startIndex","nativeSrc":"414:10:44","nodeType":"YulTypedName","src":"414:10:44","type":""},{"name":"endIndex","nativeSrc":"426:8:44","nodeType":"YulTypedName","src":"426:8:44","type":""}],"returnVariables":[{"name":"offsetOut","nativeSrc":"439:9:44","nodeType":"YulTypedName","src":"439:9:44","type":""},{"name":"lengthOut","nativeSrc":"450:9:44","nodeType":"YulTypedName","src":"450:9:44","type":""}],"src":"334:469:44"},{"body":{"nativeSrc":"898:28:44","nodeType":"YulBlock","src":"898:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"915:1:44","nodeType":"YulLiteral","src":"915:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"918:1:44","nodeType":"YulLiteral","src":"918:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"908:6:44","nodeType":"YulIdentifier","src":"908:6:44"},"nativeSrc":"908:12:44","nodeType":"YulFunctionCall","src":"908:12:44"},"nativeSrc":"908:12:44","nodeType":"YulExpressionStatement","src":"908:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"809:117:44","nodeType":"YulFunctionDefinition","src":"809:117:44"},{"body":{"nativeSrc":"1021:28:44","nodeType":"YulBlock","src":"1021:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1038:1:44","nodeType":"YulLiteral","src":"1038:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1041:1:44","nodeType":"YulLiteral","src":"1041:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1031:6:44","nodeType":"YulIdentifier","src":"1031:6:44"},"nativeSrc":"1031:12:44","nodeType":"YulFunctionCall","src":"1031:12:44"},"nativeSrc":"1031:12:44","nodeType":"YulExpressionStatement","src":"1031:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"932:117:44","nodeType":"YulFunctionDefinition","src":"932:117:44"},{"body":{"nativeSrc":"1100:81:44","nodeType":"YulBlock","src":"1100:81:44","statements":[{"nativeSrc":"1110:65:44","nodeType":"YulAssignment","src":"1110:65:44","value":{"arguments":[{"name":"value","nativeSrc":"1125:5:44","nodeType":"YulIdentifier","src":"1125:5:44"},{"kind":"number","nativeSrc":"1132:42:44","nodeType":"YulLiteral","src":"1132:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1121:3:44","nodeType":"YulIdentifier","src":"1121:3:44"},"nativeSrc":"1121:54:44","nodeType":"YulFunctionCall","src":"1121:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1110:7:44","nodeType":"YulIdentifier","src":"1110:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1055:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1082:5:44","nodeType":"YulTypedName","src":"1082:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1092:7:44","nodeType":"YulTypedName","src":"1092:7:44","type":""}],"src":"1055:126:44"},{"body":{"nativeSrc":"1240:51:44","nodeType":"YulBlock","src":"1240:51:44","statements":[{"nativeSrc":"1250:35:44","nodeType":"YulAssignment","src":"1250:35:44","value":{"arguments":[{"name":"value","nativeSrc":"1279:5:44","nodeType":"YulIdentifier","src":"1279:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1261:17:44","nodeType":"YulIdentifier","src":"1261:17:44"},"nativeSrc":"1261:24:44","nodeType":"YulFunctionCall","src":"1261:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1250:7:44","nodeType":"YulIdentifier","src":"1250:7:44"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"1187:104:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1222:5:44","nodeType":"YulTypedName","src":"1222:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1232:7:44","nodeType":"YulTypedName","src":"1232:7:44","type":""}],"src":"1187:104:44"},{"body":{"nativeSrc":"1348:87:44","nodeType":"YulBlock","src":"1348:87:44","statements":[{"body":{"nativeSrc":"1413:16:44","nodeType":"YulBlock","src":"1413:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1422:1:44","nodeType":"YulLiteral","src":"1422:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1425:1:44","nodeType":"YulLiteral","src":"1425:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1415:6:44","nodeType":"YulIdentifier","src":"1415:6:44"},"nativeSrc":"1415:12:44","nodeType":"YulFunctionCall","src":"1415:12:44"},"nativeSrc":"1415:12:44","nodeType":"YulExpressionStatement","src":"1415:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1371:5:44","nodeType":"YulIdentifier","src":"1371:5:44"},{"arguments":[{"name":"value","nativeSrc":"1404:5:44","nodeType":"YulIdentifier","src":"1404:5:44"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"1378:25:44","nodeType":"YulIdentifier","src":"1378:25:44"},"nativeSrc":"1378:32:44","nodeType":"YulFunctionCall","src":"1378:32:44"}],"functionName":{"name":"eq","nativeSrc":"1368:2:44","nodeType":"YulIdentifier","src":"1368:2:44"},"nativeSrc":"1368:43:44","nodeType":"YulFunctionCall","src":"1368:43:44"}],"functionName":{"name":"iszero","nativeSrc":"1361:6:44","nodeType":"YulIdentifier","src":"1361:6:44"},"nativeSrc":"1361:51:44","nodeType":"YulFunctionCall","src":"1361:51:44"},"nativeSrc":"1358:71:44","nodeType":"YulIf","src":"1358:71:44"}]},"name":"validator_revert_t_address_payable","nativeSrc":"1297:138:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1341:5:44","nodeType":"YulTypedName","src":"1341:5:44","type":""}],"src":"1297:138:44"},{"body":{"nativeSrc":"1501:95:44","nodeType":"YulBlock","src":"1501:95:44","statements":[{"nativeSrc":"1511:29:44","nodeType":"YulAssignment","src":"1511:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1533:6:44","nodeType":"YulIdentifier","src":"1533:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1520:12:44","nodeType":"YulIdentifier","src":"1520:12:44"},"nativeSrc":"1520:20:44","nodeType":"YulFunctionCall","src":"1520:20:44"},"variableNames":[{"name":"value","nativeSrc":"1511:5:44","nodeType":"YulIdentifier","src":"1511:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1584:5:44","nodeType":"YulIdentifier","src":"1584:5:44"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"1549:34:44","nodeType":"YulIdentifier","src":"1549:34:44"},"nativeSrc":"1549:41:44","nodeType":"YulFunctionCall","src":"1549:41:44"},"nativeSrc":"1549:41:44","nodeType":"YulExpressionStatement","src":"1549:41:44"}]},"name":"abi_decode_t_address_payable","nativeSrc":"1441:155:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1479:6:44","nodeType":"YulTypedName","src":"1479:6:44","type":""},{"name":"end","nativeSrc":"1487:3:44","nodeType":"YulTypedName","src":"1487:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1495:5:44","nodeType":"YulTypedName","src":"1495:5:44","type":""}],"src":"1441:155:44"},{"body":{"nativeSrc":"1691:28:44","nodeType":"YulBlock","src":"1691:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1708:1:44","nodeType":"YulLiteral","src":"1708:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1711:1:44","nodeType":"YulLiteral","src":"1711:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1701:6:44","nodeType":"YulIdentifier","src":"1701:6:44"},"nativeSrc":"1701:12:44","nodeType":"YulFunctionCall","src":"1701:12:44"},"nativeSrc":"1701:12:44","nodeType":"YulExpressionStatement","src":"1701:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1602:117:44","nodeType":"YulFunctionDefinition","src":"1602:117:44"},{"body":{"nativeSrc":"1814:28:44","nodeType":"YulBlock","src":"1814:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1831:1:44","nodeType":"YulLiteral","src":"1831:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1834:1:44","nodeType":"YulLiteral","src":"1834:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1824:6:44","nodeType":"YulIdentifier","src":"1824:6:44"},"nativeSrc":"1824:12:44","nodeType":"YulFunctionCall","src":"1824:12:44"},"nativeSrc":"1824:12:44","nodeType":"YulExpressionStatement","src":"1824:12:44"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1725:117:44","nodeType":"YulFunctionDefinition","src":"1725:117:44"},{"body":{"nativeSrc":"1896:54:44","nodeType":"YulBlock","src":"1896:54:44","statements":[{"nativeSrc":"1906:38:44","nodeType":"YulAssignment","src":"1906:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1924:5:44","nodeType":"YulIdentifier","src":"1924:5:44"},{"kind":"number","nativeSrc":"1931:2:44","nodeType":"YulLiteral","src":"1931:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1920:3:44","nodeType":"YulIdentifier","src":"1920:3:44"},"nativeSrc":"1920:14:44","nodeType":"YulFunctionCall","src":"1920:14:44"},{"arguments":[{"kind":"number","nativeSrc":"1940:2:44","nodeType":"YulLiteral","src":"1940:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1936:3:44","nodeType":"YulIdentifier","src":"1936:3:44"},"nativeSrc":"1936:7:44","nodeType":"YulFunctionCall","src":"1936:7:44"}],"functionName":{"name":"and","nativeSrc":"1916:3:44","nodeType":"YulIdentifier","src":"1916:3:44"},"nativeSrc":"1916:28:44","nodeType":"YulFunctionCall","src":"1916:28:44"},"variableNames":[{"name":"result","nativeSrc":"1906:6:44","nodeType":"YulIdentifier","src":"1906:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1848:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1879:5:44","nodeType":"YulTypedName","src":"1879:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1889:6:44","nodeType":"YulTypedName","src":"1889:6:44","type":""}],"src":"1848:102:44"},{"body":{"nativeSrc":"1984:152:44","nodeType":"YulBlock","src":"1984:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2001:1:44","nodeType":"YulLiteral","src":"2001:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2004:77:44","nodeType":"YulLiteral","src":"2004:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1994:6:44","nodeType":"YulIdentifier","src":"1994:6:44"},"nativeSrc":"1994:88:44","nodeType":"YulFunctionCall","src":"1994:88:44"},"nativeSrc":"1994:88:44","nodeType":"YulExpressionStatement","src":"1994:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2098:1:44","nodeType":"YulLiteral","src":"2098:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"2101:4:44","nodeType":"YulLiteral","src":"2101:4:44","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"2091:6:44","nodeType":"YulIdentifier","src":"2091:6:44"},"nativeSrc":"2091:15:44","nodeType":"YulFunctionCall","src":"2091:15:44"},"nativeSrc":"2091:15:44","nodeType":"YulExpressionStatement","src":"2091:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2122:1:44","nodeType":"YulLiteral","src":"2122:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2125:4:44","nodeType":"YulLiteral","src":"2125:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2115:6:44","nodeType":"YulIdentifier","src":"2115:6:44"},"nativeSrc":"2115:15:44","nodeType":"YulFunctionCall","src":"2115:15:44"},"nativeSrc":"2115:15:44","nodeType":"YulExpressionStatement","src":"2115:15:44"}]},"name":"panic_error_0x41","nativeSrc":"1956:180:44","nodeType":"YulFunctionDefinition","src":"1956:180:44"},{"body":{"nativeSrc":"2185:238:44","nodeType":"YulBlock","src":"2185:238:44","statements":[{"nativeSrc":"2195:58:44","nodeType":"YulVariableDeclaration","src":"2195:58:44","value":{"arguments":[{"name":"memPtr","nativeSrc":"2217:6:44","nodeType":"YulIdentifier","src":"2217:6:44"},{"arguments":[{"name":"size","nativeSrc":"2247:4:44","nodeType":"YulIdentifier","src":"2247:4:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2225:21:44","nodeType":"YulIdentifier","src":"2225:21:44"},"nativeSrc":"2225:27:44","nodeType":"YulFunctionCall","src":"2225:27:44"}],"functionName":{"name":"add","nativeSrc":"2213:3:44","nodeType":"YulIdentifier","src":"2213:3:44"},"nativeSrc":"2213:40:44","nodeType":"YulFunctionCall","src":"2213:40:44"},"variables":[{"name":"newFreePtr","nativeSrc":"2199:10:44","nodeType":"YulTypedName","src":"2199:10:44","type":""}]},{"body":{"nativeSrc":"2364:22:44","nodeType":"YulBlock","src":"2364:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2366:16:44","nodeType":"YulIdentifier","src":"2366:16:44"},"nativeSrc":"2366:18:44","nodeType":"YulFunctionCall","src":"2366:18:44"},"nativeSrc":"2366:18:44","nodeType":"YulExpressionStatement","src":"2366:18:44"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2307:10:44","nodeType":"YulIdentifier","src":"2307:10:44"},{"kind":"number","nativeSrc":"2319:18:44","nodeType":"YulLiteral","src":"2319:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2304:2:44","nodeType":"YulIdentifier","src":"2304:2:44"},"nativeSrc":"2304:34:44","nodeType":"YulFunctionCall","src":"2304:34:44"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2343:10:44","nodeType":"YulIdentifier","src":"2343:10:44"},{"name":"memPtr","nativeSrc":"2355:6:44","nodeType":"YulIdentifier","src":"2355:6:44"}],"functionName":{"name":"lt","nativeSrc":"2340:2:44","nodeType":"YulIdentifier","src":"2340:2:44"},"nativeSrc":"2340:22:44","nodeType":"YulFunctionCall","src":"2340:22:44"}],"functionName":{"name":"or","nativeSrc":"2301:2:44","nodeType":"YulIdentifier","src":"2301:2:44"},"nativeSrc":"2301:62:44","nodeType":"YulFunctionCall","src":"2301:62:44"},"nativeSrc":"2298:88:44","nodeType":"YulIf","src":"2298:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2402:2:44","nodeType":"YulLiteral","src":"2402:2:44","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2406:10:44","nodeType":"YulIdentifier","src":"2406:10:44"}],"functionName":{"name":"mstore","nativeSrc":"2395:6:44","nodeType":"YulIdentifier","src":"2395:6:44"},"nativeSrc":"2395:22:44","nodeType":"YulFunctionCall","src":"2395:22:44"},"nativeSrc":"2395:22:44","nodeType":"YulExpressionStatement","src":"2395:22:44"}]},"name":"finalize_allocation","nativeSrc":"2142:281:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2171:6:44","nodeType":"YulTypedName","src":"2171:6:44","type":""},{"name":"size","nativeSrc":"2179:4:44","nodeType":"YulTypedName","src":"2179:4:44","type":""}],"src":"2142:281:44"},{"body":{"nativeSrc":"2470:88:44","nodeType":"YulBlock","src":"2470:88:44","statements":[{"nativeSrc":"2480:30:44","nodeType":"YulAssignment","src":"2480:30:44","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2490:18:44","nodeType":"YulIdentifier","src":"2490:18:44"},"nativeSrc":"2490:20:44","nodeType":"YulFunctionCall","src":"2490:20:44"},"variableNames":[{"name":"memPtr","nativeSrc":"2480:6:44","nodeType":"YulIdentifier","src":"2480:6:44"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2539:6:44","nodeType":"YulIdentifier","src":"2539:6:44"},{"name":"size","nativeSrc":"2547:4:44","nodeType":"YulIdentifier","src":"2547:4:44"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2519:19:44","nodeType":"YulIdentifier","src":"2519:19:44"},"nativeSrc":"2519:33:44","nodeType":"YulFunctionCall","src":"2519:33:44"},"nativeSrc":"2519:33:44","nodeType":"YulExpressionStatement","src":"2519:33:44"}]},"name":"allocate_memory","nativeSrc":"2429:129:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2454:4:44","nodeType":"YulTypedName","src":"2454:4:44","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2463:6:44","nodeType":"YulTypedName","src":"2463:6:44","type":""}],"src":"2429:129:44"},{"body":{"nativeSrc":"2630:241:44","nodeType":"YulBlock","src":"2630:241:44","statements":[{"body":{"nativeSrc":"2735:22:44","nodeType":"YulBlock","src":"2735:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2737:16:44","nodeType":"YulIdentifier","src":"2737:16:44"},"nativeSrc":"2737:18:44","nodeType":"YulFunctionCall","src":"2737:18:44"},"nativeSrc":"2737:18:44","nodeType":"YulExpressionStatement","src":"2737:18:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2707:6:44","nodeType":"YulIdentifier","src":"2707:6:44"},{"kind":"number","nativeSrc":"2715:18:44","nodeType":"YulLiteral","src":"2715:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2704:2:44","nodeType":"YulIdentifier","src":"2704:2:44"},"nativeSrc":"2704:30:44","nodeType":"YulFunctionCall","src":"2704:30:44"},"nativeSrc":"2701:56:44","nodeType":"YulIf","src":"2701:56:44"},{"nativeSrc":"2767:37:44","nodeType":"YulAssignment","src":"2767:37:44","value":{"arguments":[{"name":"length","nativeSrc":"2797:6:44","nodeType":"YulIdentifier","src":"2797:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2775:21:44","nodeType":"YulIdentifier","src":"2775:21:44"},"nativeSrc":"2775:29:44","nodeType":"YulFunctionCall","src":"2775:29:44"},"variableNames":[{"name":"size","nativeSrc":"2767:4:44","nodeType":"YulIdentifier","src":"2767:4:44"}]},{"nativeSrc":"2841:23:44","nodeType":"YulAssignment","src":"2841:23:44","value":{"arguments":[{"name":"size","nativeSrc":"2853:4:44","nodeType":"YulIdentifier","src":"2853:4:44"},{"kind":"number","nativeSrc":"2859:4:44","nodeType":"YulLiteral","src":"2859:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2849:3:44","nodeType":"YulIdentifier","src":"2849:3:44"},"nativeSrc":"2849:15:44","nodeType":"YulFunctionCall","src":"2849:15:44"},"variableNames":[{"name":"size","nativeSrc":"2841:4:44","nodeType":"YulIdentifier","src":"2841:4:44"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"2564:307:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2614:6:44","nodeType":"YulTypedName","src":"2614:6:44","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2625:4:44","nodeType":"YulTypedName","src":"2625:4:44","type":""}],"src":"2564:307:44"},{"body":{"nativeSrc":"2941:84:44","nodeType":"YulBlock","src":"2941:84:44","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2965:3:44","nodeType":"YulIdentifier","src":"2965:3:44"},{"name":"src","nativeSrc":"2970:3:44","nodeType":"YulIdentifier","src":"2970:3:44"},{"name":"length","nativeSrc":"2975:6:44","nodeType":"YulIdentifier","src":"2975:6:44"}],"functionName":{"name":"calldatacopy","nativeSrc":"2952:12:44","nodeType":"YulIdentifier","src":"2952:12:44"},"nativeSrc":"2952:30:44","nodeType":"YulFunctionCall","src":"2952:30:44"},"nativeSrc":"2952:30:44","nodeType":"YulExpressionStatement","src":"2952:30:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3002:3:44","nodeType":"YulIdentifier","src":"3002:3:44"},{"name":"length","nativeSrc":"3007:6:44","nodeType":"YulIdentifier","src":"3007:6:44"}],"functionName":{"name":"add","nativeSrc":"2998:3:44","nodeType":"YulIdentifier","src":"2998:3:44"},"nativeSrc":"2998:16:44","nodeType":"YulFunctionCall","src":"2998:16:44"},{"kind":"number","nativeSrc":"3016:1:44","nodeType":"YulLiteral","src":"3016:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2991:6:44","nodeType":"YulIdentifier","src":"2991:6:44"},"nativeSrc":"2991:27:44","nodeType":"YulFunctionCall","src":"2991:27:44"},"nativeSrc":"2991:27:44","nodeType":"YulExpressionStatement","src":"2991:27:44"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2877:148:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2923:3:44","nodeType":"YulTypedName","src":"2923:3:44","type":""},{"name":"dst","nativeSrc":"2928:3:44","nodeType":"YulTypedName","src":"2928:3:44","type":""},{"name":"length","nativeSrc":"2933:6:44","nodeType":"YulTypedName","src":"2933:6:44","type":""}],"src":"2877:148:44"},{"body":{"nativeSrc":"3114:340:44","nodeType":"YulBlock","src":"3114:340:44","statements":[{"nativeSrc":"3124:74:44","nodeType":"YulAssignment","src":"3124:74:44","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3190:6:44","nodeType":"YulIdentifier","src":"3190:6:44"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"3149:40:44","nodeType":"YulIdentifier","src":"3149:40:44"},"nativeSrc":"3149:48:44","nodeType":"YulFunctionCall","src":"3149:48:44"}],"functionName":{"name":"allocate_memory","nativeSrc":"3133:15:44","nodeType":"YulIdentifier","src":"3133:15:44"},"nativeSrc":"3133:65:44","nodeType":"YulFunctionCall","src":"3133:65:44"},"variableNames":[{"name":"array","nativeSrc":"3124:5:44","nodeType":"YulIdentifier","src":"3124:5:44"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3214:5:44","nodeType":"YulIdentifier","src":"3214:5:44"},{"name":"length","nativeSrc":"3221:6:44","nodeType":"YulIdentifier","src":"3221:6:44"}],"functionName":{"name":"mstore","nativeSrc":"3207:6:44","nodeType":"YulIdentifier","src":"3207:6:44"},"nativeSrc":"3207:21:44","nodeType":"YulFunctionCall","src":"3207:21:44"},"nativeSrc":"3207:21:44","nodeType":"YulExpressionStatement","src":"3207:21:44"},{"nativeSrc":"3237:27:44","nodeType":"YulVariableDeclaration","src":"3237:27:44","value":{"arguments":[{"name":"array","nativeSrc":"3252:5:44","nodeType":"YulIdentifier","src":"3252:5:44"},{"kind":"number","nativeSrc":"3259:4:44","nodeType":"YulLiteral","src":"3259:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3248:3:44","nodeType":"YulIdentifier","src":"3248:3:44"},"nativeSrc":"3248:16:44","nodeType":"YulFunctionCall","src":"3248:16:44"},"variables":[{"name":"dst","nativeSrc":"3241:3:44","nodeType":"YulTypedName","src":"3241:3:44","type":""}]},{"body":{"nativeSrc":"3302:83:44","nodeType":"YulBlock","src":"3302:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3304:77:44","nodeType":"YulIdentifier","src":"3304:77:44"},"nativeSrc":"3304:79:44","nodeType":"YulFunctionCall","src":"3304:79:44"},"nativeSrc":"3304:79:44","nodeType":"YulExpressionStatement","src":"3304:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3283:3:44","nodeType":"YulIdentifier","src":"3283:3:44"},{"name":"length","nativeSrc":"3288:6:44","nodeType":"YulIdentifier","src":"3288:6:44"}],"functionName":{"name":"add","nativeSrc":"3279:3:44","nodeType":"YulIdentifier","src":"3279:3:44"},"nativeSrc":"3279:16:44","nodeType":"YulFunctionCall","src":"3279:16:44"},{"name":"end","nativeSrc":"3297:3:44","nodeType":"YulIdentifier","src":"3297:3:44"}],"functionName":{"name":"gt","nativeSrc":"3276:2:44","nodeType":"YulIdentifier","src":"3276:2:44"},"nativeSrc":"3276:25:44","nodeType":"YulFunctionCall","src":"3276:25:44"},"nativeSrc":"3273:112:44","nodeType":"YulIf","src":"3273:112:44"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3431:3:44","nodeType":"YulIdentifier","src":"3431:3:44"},{"name":"dst","nativeSrc":"3436:3:44","nodeType":"YulIdentifier","src":"3436:3:44"},{"name":"length","nativeSrc":"3441:6:44","nodeType":"YulIdentifier","src":"3441:6:44"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3394:36:44","nodeType":"YulIdentifier","src":"3394:36:44"},"nativeSrc":"3394:54:44","nodeType":"YulFunctionCall","src":"3394:54:44"},"nativeSrc":"3394:54:44","nodeType":"YulExpressionStatement","src":"3394:54:44"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3031:423:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3087:3:44","nodeType":"YulTypedName","src":"3087:3:44","type":""},{"name":"length","nativeSrc":"3092:6:44","nodeType":"YulTypedName","src":"3092:6:44","type":""},{"name":"end","nativeSrc":"3100:3:44","nodeType":"YulTypedName","src":"3100:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3108:5:44","nodeType":"YulTypedName","src":"3108:5:44","type":""}],"src":"3031:423:44"},{"body":{"nativeSrc":"3534:277:44","nodeType":"YulBlock","src":"3534:277:44","statements":[{"body":{"nativeSrc":"3583:83:44","nodeType":"YulBlock","src":"3583:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3585:77:44","nodeType":"YulIdentifier","src":"3585:77:44"},"nativeSrc":"3585:79:44","nodeType":"YulFunctionCall","src":"3585:79:44"},"nativeSrc":"3585:79:44","nodeType":"YulExpressionStatement","src":"3585:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3562:6:44","nodeType":"YulIdentifier","src":"3562:6:44"},{"kind":"number","nativeSrc":"3570:4:44","nodeType":"YulLiteral","src":"3570:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3558:3:44","nodeType":"YulIdentifier","src":"3558:3:44"},"nativeSrc":"3558:17:44","nodeType":"YulFunctionCall","src":"3558:17:44"},{"name":"end","nativeSrc":"3577:3:44","nodeType":"YulIdentifier","src":"3577:3:44"}],"functionName":{"name":"slt","nativeSrc":"3554:3:44","nodeType":"YulIdentifier","src":"3554:3:44"},"nativeSrc":"3554:27:44","nodeType":"YulFunctionCall","src":"3554:27:44"}],"functionName":{"name":"iszero","nativeSrc":"3547:6:44","nodeType":"YulIdentifier","src":"3547:6:44"},"nativeSrc":"3547:35:44","nodeType":"YulFunctionCall","src":"3547:35:44"},"nativeSrc":"3544:122:44","nodeType":"YulIf","src":"3544:122:44"},{"nativeSrc":"3675:34:44","nodeType":"YulVariableDeclaration","src":"3675:34:44","value":{"arguments":[{"name":"offset","nativeSrc":"3702:6:44","nodeType":"YulIdentifier","src":"3702:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3689:12:44","nodeType":"YulIdentifier","src":"3689:12:44"},"nativeSrc":"3689:20:44","nodeType":"YulFunctionCall","src":"3689:20:44"},"variables":[{"name":"length","nativeSrc":"3679:6:44","nodeType":"YulTypedName","src":"3679:6:44","type":""}]},{"nativeSrc":"3718:87:44","nodeType":"YulAssignment","src":"3718:87:44","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3778:6:44","nodeType":"YulIdentifier","src":"3778:6:44"},{"kind":"number","nativeSrc":"3786:4:44","nodeType":"YulLiteral","src":"3786:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3774:3:44","nodeType":"YulIdentifier","src":"3774:3:44"},"nativeSrc":"3774:17:44","nodeType":"YulFunctionCall","src":"3774:17:44"},{"name":"length","nativeSrc":"3793:6:44","nodeType":"YulIdentifier","src":"3793:6:44"},{"name":"end","nativeSrc":"3801:3:44","nodeType":"YulIdentifier","src":"3801:3:44"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"3727:46:44","nodeType":"YulIdentifier","src":"3727:46:44"},"nativeSrc":"3727:78:44","nodeType":"YulFunctionCall","src":"3727:78:44"},"variableNames":[{"name":"array","nativeSrc":"3718:5:44","nodeType":"YulIdentifier","src":"3718:5:44"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"3473:338:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3512:6:44","nodeType":"YulTypedName","src":"3512:6:44","type":""},{"name":"end","nativeSrc":"3520:3:44","nodeType":"YulTypedName","src":"3520:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3528:5:44","nodeType":"YulTypedName","src":"3528:5:44","type":""}],"src":"3473:338:44"},{"body":{"nativeSrc":"3917:568:44","nodeType":"YulBlock","src":"3917:568:44","statements":[{"body":{"nativeSrc":"3963:83:44","nodeType":"YulBlock","src":"3963:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3965:77:44","nodeType":"YulIdentifier","src":"3965:77:44"},"nativeSrc":"3965:79:44","nodeType":"YulFunctionCall","src":"3965:79:44"},"nativeSrc":"3965:79:44","nodeType":"YulExpressionStatement","src":"3965:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3938:7:44","nodeType":"YulIdentifier","src":"3938:7:44"},{"name":"headStart","nativeSrc":"3947:9:44","nodeType":"YulIdentifier","src":"3947:9:44"}],"functionName":{"name":"sub","nativeSrc":"3934:3:44","nodeType":"YulIdentifier","src":"3934:3:44"},"nativeSrc":"3934:23:44","nodeType":"YulFunctionCall","src":"3934:23:44"},{"kind":"number","nativeSrc":"3959:2:44","nodeType":"YulLiteral","src":"3959:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3930:3:44","nodeType":"YulIdentifier","src":"3930:3:44"},"nativeSrc":"3930:32:44","nodeType":"YulFunctionCall","src":"3930:32:44"},"nativeSrc":"3927:119:44","nodeType":"YulIf","src":"3927:119:44"},{"nativeSrc":"4056:125:44","nodeType":"YulBlock","src":"4056:125:44","statements":[{"nativeSrc":"4071:15:44","nodeType":"YulVariableDeclaration","src":"4071:15:44","value":{"kind":"number","nativeSrc":"4085:1:44","nodeType":"YulLiteral","src":"4085:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4075:6:44","nodeType":"YulTypedName","src":"4075:6:44","type":""}]},{"nativeSrc":"4100:71:44","nodeType":"YulAssignment","src":"4100:71:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4143:9:44","nodeType":"YulIdentifier","src":"4143:9:44"},{"name":"offset","nativeSrc":"4154:6:44","nodeType":"YulIdentifier","src":"4154:6:44"}],"functionName":{"name":"add","nativeSrc":"4139:3:44","nodeType":"YulIdentifier","src":"4139:3:44"},"nativeSrc":"4139:22:44","nodeType":"YulFunctionCall","src":"4139:22:44"},{"name":"dataEnd","nativeSrc":"4163:7:44","nodeType":"YulIdentifier","src":"4163:7:44"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"4110:28:44","nodeType":"YulIdentifier","src":"4110:28:44"},"nativeSrc":"4110:61:44","nodeType":"YulFunctionCall","src":"4110:61:44"},"variableNames":[{"name":"value0","nativeSrc":"4100:6:44","nodeType":"YulIdentifier","src":"4100:6:44"}]}]},{"nativeSrc":"4191:287:44","nodeType":"YulBlock","src":"4191:287:44","statements":[{"nativeSrc":"4206:46:44","nodeType":"YulVariableDeclaration","src":"4206:46:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4237:9:44","nodeType":"YulIdentifier","src":"4237:9:44"},{"kind":"number","nativeSrc":"4248:2:44","nodeType":"YulLiteral","src":"4248:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4233:3:44","nodeType":"YulIdentifier","src":"4233:3:44"},"nativeSrc":"4233:18:44","nodeType":"YulFunctionCall","src":"4233:18:44"}],"functionName":{"name":"calldataload","nativeSrc":"4220:12:44","nodeType":"YulIdentifier","src":"4220:12:44"},"nativeSrc":"4220:32:44","nodeType":"YulFunctionCall","src":"4220:32:44"},"variables":[{"name":"offset","nativeSrc":"4210:6:44","nodeType":"YulTypedName","src":"4210:6:44","type":""}]},{"body":{"nativeSrc":"4299:83:44","nodeType":"YulBlock","src":"4299:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4301:77:44","nodeType":"YulIdentifier","src":"4301:77:44"},"nativeSrc":"4301:79:44","nodeType":"YulFunctionCall","src":"4301:79:44"},"nativeSrc":"4301:79:44","nodeType":"YulExpressionStatement","src":"4301:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4271:6:44","nodeType":"YulIdentifier","src":"4271:6:44"},{"kind":"number","nativeSrc":"4279:18:44","nodeType":"YulLiteral","src":"4279:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4268:2:44","nodeType":"YulIdentifier","src":"4268:2:44"},"nativeSrc":"4268:30:44","nodeType":"YulFunctionCall","src":"4268:30:44"},"nativeSrc":"4265:117:44","nodeType":"YulIf","src":"4265:117:44"},{"nativeSrc":"4396:72:44","nodeType":"YulAssignment","src":"4396:72:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4440:9:44","nodeType":"YulIdentifier","src":"4440:9:44"},{"name":"offset","nativeSrc":"4451:6:44","nodeType":"YulIdentifier","src":"4451:6:44"}],"functionName":{"name":"add","nativeSrc":"4436:3:44","nodeType":"YulIdentifier","src":"4436:3:44"},"nativeSrc":"4436:22:44","nodeType":"YulFunctionCall","src":"4436:22:44"},{"name":"dataEnd","nativeSrc":"4460:7:44","nodeType":"YulIdentifier","src":"4460:7:44"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"4406:29:44","nodeType":"YulIdentifier","src":"4406:29:44"},"nativeSrc":"4406:62:44","nodeType":"YulFunctionCall","src":"4406:62:44"},"variableNames":[{"name":"value1","nativeSrc":"4396:6:44","nodeType":"YulIdentifier","src":"4396:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes_memory_ptr","nativeSrc":"3817:668:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3879:9:44","nodeType":"YulTypedName","src":"3879:9:44","type":""},{"name":"dataEnd","nativeSrc":"3890:7:44","nodeType":"YulTypedName","src":"3890:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3902:6:44","nodeType":"YulTypedName","src":"3902:6:44","type":""},{"name":"value1","nativeSrc":"3910:6:44","nodeType":"YulTypedName","src":"3910:6:44","type":""}],"src":"3817:668:44"},{"body":{"nativeSrc":"4536:51:44","nodeType":"YulBlock","src":"4536:51:44","statements":[{"nativeSrc":"4546:35:44","nodeType":"YulAssignment","src":"4546:35:44","value":{"arguments":[{"name":"value","nativeSrc":"4575:5:44","nodeType":"YulIdentifier","src":"4575:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4557:17:44","nodeType":"YulIdentifier","src":"4557:17:44"},"nativeSrc":"4557:24:44","nodeType":"YulFunctionCall","src":"4557:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"4546:7:44","nodeType":"YulIdentifier","src":"4546:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"4491:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4518:5:44","nodeType":"YulTypedName","src":"4518:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4528:7:44","nodeType":"YulTypedName","src":"4528:7:44","type":""}],"src":"4491:96:44"},{"body":{"nativeSrc":"4658:53:44","nodeType":"YulBlock","src":"4658:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4675:3:44","nodeType":"YulIdentifier","src":"4675:3:44"},{"arguments":[{"name":"value","nativeSrc":"4698:5:44","nodeType":"YulIdentifier","src":"4698:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4680:17:44","nodeType":"YulIdentifier","src":"4680:17:44"},"nativeSrc":"4680:24:44","nodeType":"YulFunctionCall","src":"4680:24:44"}],"functionName":{"name":"mstore","nativeSrc":"4668:6:44","nodeType":"YulIdentifier","src":"4668:6:44"},"nativeSrc":"4668:37:44","nodeType":"YulFunctionCall","src":"4668:37:44"},"nativeSrc":"4668:37:44","nodeType":"YulExpressionStatement","src":"4668:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4593:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4646:5:44","nodeType":"YulTypedName","src":"4646:5:44","type":""},{"name":"pos","nativeSrc":"4653:3:44","nodeType":"YulTypedName","src":"4653:3:44","type":""}],"src":"4593:118:44"},{"body":{"nativeSrc":"4815:124:44","nodeType":"YulBlock","src":"4815:124:44","statements":[{"nativeSrc":"4825:26:44","nodeType":"YulAssignment","src":"4825:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4837:9:44","nodeType":"YulIdentifier","src":"4837:9:44"},{"kind":"number","nativeSrc":"4848:2:44","nodeType":"YulLiteral","src":"4848:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4833:3:44","nodeType":"YulIdentifier","src":"4833:3:44"},"nativeSrc":"4833:18:44","nodeType":"YulFunctionCall","src":"4833:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4825:4:44","nodeType":"YulIdentifier","src":"4825:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4905:6:44","nodeType":"YulIdentifier","src":"4905:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4918:9:44","nodeType":"YulIdentifier","src":"4918:9:44"},{"kind":"number","nativeSrc":"4929:1:44","nodeType":"YulLiteral","src":"4929:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4914:3:44","nodeType":"YulIdentifier","src":"4914:3:44"},"nativeSrc":"4914:17:44","nodeType":"YulFunctionCall","src":"4914:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4861:43:44","nodeType":"YulIdentifier","src":"4861:43:44"},"nativeSrc":"4861:71:44","nodeType":"YulFunctionCall","src":"4861:71:44"},"nativeSrc":"4861:71:44","nodeType":"YulExpressionStatement","src":"4861:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4717:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4787:9:44","nodeType":"YulTypedName","src":"4787:9:44","type":""},{"name":"value0","nativeSrc":"4799:6:44","nodeType":"YulTypedName","src":"4799:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4810:4:44","nodeType":"YulTypedName","src":"4810:4:44","type":""}],"src":"4717:222:44"},{"body":{"nativeSrc":"5003:40:44","nodeType":"YulBlock","src":"5003:40:44","statements":[{"nativeSrc":"5014:22:44","nodeType":"YulAssignment","src":"5014:22:44","value":{"arguments":[{"name":"value","nativeSrc":"5030:5:44","nodeType":"YulIdentifier","src":"5030:5:44"}],"functionName":{"name":"mload","nativeSrc":"5024:5:44","nodeType":"YulIdentifier","src":"5024:5:44"},"nativeSrc":"5024:12:44","nodeType":"YulFunctionCall","src":"5024:12:44"},"variableNames":[{"name":"length","nativeSrc":"5014:6:44","nodeType":"YulIdentifier","src":"5014:6:44"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4945:98:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4986:5:44","nodeType":"YulTypedName","src":"4986:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4996:6:44","nodeType":"YulTypedName","src":"4996:6:44","type":""}],"src":"4945:98:44"},{"body":{"nativeSrc":"5162:34:44","nodeType":"YulBlock","src":"5162:34:44","statements":[{"nativeSrc":"5172:18:44","nodeType":"YulAssignment","src":"5172:18:44","value":{"name":"pos","nativeSrc":"5187:3:44","nodeType":"YulIdentifier","src":"5187:3:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"5172:11:44","nodeType":"YulIdentifier","src":"5172:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5049:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5134:3:44","nodeType":"YulTypedName","src":"5134:3:44","type":""},{"name":"length","nativeSrc":"5139:6:44","nodeType":"YulTypedName","src":"5139:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5150:11:44","nodeType":"YulTypedName","src":"5150:11:44","type":""}],"src":"5049:147:44"},{"body":{"nativeSrc":"5264:186:44","nodeType":"YulBlock","src":"5264:186:44","statements":[{"nativeSrc":"5275:10:44","nodeType":"YulVariableDeclaration","src":"5275:10:44","value":{"kind":"number","nativeSrc":"5284:1:44","nodeType":"YulLiteral","src":"5284:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5279:1:44","nodeType":"YulTypedName","src":"5279:1:44","type":""}]},{"body":{"nativeSrc":"5344:63:44","nodeType":"YulBlock","src":"5344:63:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5369:3:44","nodeType":"YulIdentifier","src":"5369:3:44"},{"name":"i","nativeSrc":"5374:1:44","nodeType":"YulIdentifier","src":"5374:1:44"}],"functionName":{"name":"add","nativeSrc":"5365:3:44","nodeType":"YulIdentifier","src":"5365:3:44"},"nativeSrc":"5365:11:44","nodeType":"YulFunctionCall","src":"5365:11:44"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5388:3:44","nodeType":"YulIdentifier","src":"5388:3:44"},{"name":"i","nativeSrc":"5393:1:44","nodeType":"YulIdentifier","src":"5393:1:44"}],"functionName":{"name":"add","nativeSrc":"5384:3:44","nodeType":"YulIdentifier","src":"5384:3:44"},"nativeSrc":"5384:11:44","nodeType":"YulFunctionCall","src":"5384:11:44"}],"functionName":{"name":"mload","nativeSrc":"5378:5:44","nodeType":"YulIdentifier","src":"5378:5:44"},"nativeSrc":"5378:18:44","nodeType":"YulFunctionCall","src":"5378:18:44"}],"functionName":{"name":"mstore","nativeSrc":"5358:6:44","nodeType":"YulIdentifier","src":"5358:6:44"},"nativeSrc":"5358:39:44","nodeType":"YulFunctionCall","src":"5358:39:44"},"nativeSrc":"5358:39:44","nodeType":"YulExpressionStatement","src":"5358:39:44"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5305:1:44","nodeType":"YulIdentifier","src":"5305:1:44"},{"name":"length","nativeSrc":"5308:6:44","nodeType":"YulIdentifier","src":"5308:6:44"}],"functionName":{"name":"lt","nativeSrc":"5302:2:44","nodeType":"YulIdentifier","src":"5302:2:44"},"nativeSrc":"5302:13:44","nodeType":"YulFunctionCall","src":"5302:13:44"},"nativeSrc":"5294:113:44","nodeType":"YulForLoop","post":{"nativeSrc":"5316:19:44","nodeType":"YulBlock","src":"5316:19:44","statements":[{"nativeSrc":"5318:15:44","nodeType":"YulAssignment","src":"5318:15:44","value":{"arguments":[{"name":"i","nativeSrc":"5327:1:44","nodeType":"YulIdentifier","src":"5327:1:44"},{"kind":"number","nativeSrc":"5330:2:44","nodeType":"YulLiteral","src":"5330:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5323:3:44","nodeType":"YulIdentifier","src":"5323:3:44"},"nativeSrc":"5323:10:44","nodeType":"YulFunctionCall","src":"5323:10:44"},"variableNames":[{"name":"i","nativeSrc":"5318:1:44","nodeType":"YulIdentifier","src":"5318:1:44"}]}]},"pre":{"nativeSrc":"5298:3:44","nodeType":"YulBlock","src":"5298:3:44","statements":[]},"src":"5294:113:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5427:3:44","nodeType":"YulIdentifier","src":"5427:3:44"},{"name":"length","nativeSrc":"5432:6:44","nodeType":"YulIdentifier","src":"5432:6:44"}],"functionName":{"name":"add","nativeSrc":"5423:3:44","nodeType":"YulIdentifier","src":"5423:3:44"},"nativeSrc":"5423:16:44","nodeType":"YulFunctionCall","src":"5423:16:44"},{"kind":"number","nativeSrc":"5441:1:44","nodeType":"YulLiteral","src":"5441:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5416:6:44","nodeType":"YulIdentifier","src":"5416:6:44"},"nativeSrc":"5416:27:44","nodeType":"YulFunctionCall","src":"5416:27:44"},"nativeSrc":"5416:27:44","nodeType":"YulExpressionStatement","src":"5416:27:44"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5202:248:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5246:3:44","nodeType":"YulTypedName","src":"5246:3:44","type":""},{"name":"dst","nativeSrc":"5251:3:44","nodeType":"YulTypedName","src":"5251:3:44","type":""},{"name":"length","nativeSrc":"5256:6:44","nodeType":"YulTypedName","src":"5256:6:44","type":""}],"src":"5202:248:44"},{"body":{"nativeSrc":"5564:278:44","nodeType":"YulBlock","src":"5564:278:44","statements":[{"nativeSrc":"5574:52:44","nodeType":"YulVariableDeclaration","src":"5574:52:44","value":{"arguments":[{"name":"value","nativeSrc":"5620:5:44","nodeType":"YulIdentifier","src":"5620:5:44"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5588:31:44","nodeType":"YulIdentifier","src":"5588:31:44"},"nativeSrc":"5588:38:44","nodeType":"YulFunctionCall","src":"5588:38:44"},"variables":[{"name":"length","nativeSrc":"5578:6:44","nodeType":"YulTypedName","src":"5578:6:44","type":""}]},{"nativeSrc":"5635:95:44","nodeType":"YulAssignment","src":"5635:95:44","value":{"arguments":[{"name":"pos","nativeSrc":"5718:3:44","nodeType":"YulIdentifier","src":"5718:3:44"},{"name":"length","nativeSrc":"5723:6:44","nodeType":"YulIdentifier","src":"5723:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5642:75:44","nodeType":"YulIdentifier","src":"5642:75:44"},"nativeSrc":"5642:88:44","nodeType":"YulFunctionCall","src":"5642:88:44"},"variableNames":[{"name":"pos","nativeSrc":"5635:3:44","nodeType":"YulIdentifier","src":"5635:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5778:5:44","nodeType":"YulIdentifier","src":"5778:5:44"},{"kind":"number","nativeSrc":"5785:4:44","nodeType":"YulLiteral","src":"5785:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5774:3:44","nodeType":"YulIdentifier","src":"5774:3:44"},"nativeSrc":"5774:16:44","nodeType":"YulFunctionCall","src":"5774:16:44"},{"name":"pos","nativeSrc":"5792:3:44","nodeType":"YulIdentifier","src":"5792:3:44"},{"name":"length","nativeSrc":"5797:6:44","nodeType":"YulIdentifier","src":"5797:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5739:34:44","nodeType":"YulIdentifier","src":"5739:34:44"},"nativeSrc":"5739:65:44","nodeType":"YulFunctionCall","src":"5739:65:44"},"nativeSrc":"5739:65:44","nodeType":"YulExpressionStatement","src":"5739:65:44"},{"nativeSrc":"5813:23:44","nodeType":"YulAssignment","src":"5813:23:44","value":{"arguments":[{"name":"pos","nativeSrc":"5824:3:44","nodeType":"YulIdentifier","src":"5824:3:44"},{"name":"length","nativeSrc":"5829:6:44","nodeType":"YulIdentifier","src":"5829:6:44"}],"functionName":{"name":"add","nativeSrc":"5820:3:44","nodeType":"YulIdentifier","src":"5820:3:44"},"nativeSrc":"5820:16:44","nodeType":"YulFunctionCall","src":"5820:16:44"},"variableNames":[{"name":"end","nativeSrc":"5813:3:44","nodeType":"YulIdentifier","src":"5813:3:44"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5456:386:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5545:5:44","nodeType":"YulTypedName","src":"5545:5:44","type":""},{"name":"pos","nativeSrc":"5552:3:44","nodeType":"YulTypedName","src":"5552:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5560:3:44","nodeType":"YulTypedName","src":"5560:3:44","type":""}],"src":"5456:386:44"},{"body":{"nativeSrc":"5982:137:44","nodeType":"YulBlock","src":"5982:137:44","statements":[{"nativeSrc":"5993:100:44","nodeType":"YulAssignment","src":"5993:100:44","value":{"arguments":[{"name":"value0","nativeSrc":"6080:6:44","nodeType":"YulIdentifier","src":"6080:6:44"},{"name":"pos","nativeSrc":"6089:3:44","nodeType":"YulIdentifier","src":"6089:3:44"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6000:79:44","nodeType":"YulIdentifier","src":"6000:79:44"},"nativeSrc":"6000:93:44","nodeType":"YulFunctionCall","src":"6000:93:44"},"variableNames":[{"name":"pos","nativeSrc":"5993:3:44","nodeType":"YulIdentifier","src":"5993:3:44"}]},{"nativeSrc":"6103:10:44","nodeType":"YulAssignment","src":"6103:10:44","value":{"name":"pos","nativeSrc":"6110:3:44","nodeType":"YulIdentifier","src":"6110:3:44"},"variableNames":[{"name":"end","nativeSrc":"6103:3:44","nodeType":"YulIdentifier","src":"6103:3:44"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5848:271:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5961:3:44","nodeType":"YulTypedName","src":"5961:3:44","type":""},{"name":"value0","nativeSrc":"5967:6:44","nodeType":"YulTypedName","src":"5967:6:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5978:3:44","nodeType":"YulTypedName","src":"5978:3:44","type":""}],"src":"5848:271:44"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() {\n        revert(0, 0)\n    }\n\n    function revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() {\n        revert(0, 0)\n    }\n\n    function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut {\n        if gt(startIndex, endIndex) { revert_error_7678404c0552a58cf14944d1a786cf4c81aab3563e2735cb332aee47bbb57c4a() }\n        if gt(endIndex, length) { revert_error_46e3e63c93837e9efa638abb3b4e76ced8c11259a873f1381a0abdf6ae6a823c() }\n        offsetOut := add(offset, mul(startIndex, 1))\n        lengthOut := sub(endIndex, startIndex)\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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_payable(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address_payable(value)\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_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 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_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_address_payablet_bytes_memory_ptr(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_payable(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\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 array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\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_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_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 abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3019":[{"length":32,"start":262}]},"linkReferences":{},"object":"608060405261000c61000e565b005b610016610102565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f757634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100ea576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f261012a565b610100565b6100ff610160565b5b565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b6000806000366004908092610141939291906104f1565b81019061014e91906106da565b9150915061015c8282610172565b5050565b61017061016b6101e5565b6101f4565b565b61017b8261021a565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a26000815111156101d8576101d282826102e7565b506101e1565b6101e061036b565b5b5050565b60006101ef6103a8565b905090565b3660008037600080366000845af43d6000803e8060008114610215573d6000f35b3d6000fd5b60008173ffffffffffffffffffffffffffffffffffffffff163b0361027657806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161026d9190610757565b60405180910390fd5b806102a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606000808473ffffffffffffffffffffffffffffffffffffffff168460405161031191906107e3565b600060405180830381855af49150503d806000811461034c576040519150601f19603f3d011682016040523d82523d6000602084013e610351565b606091505b5091509150610361858383610409565b9250505092915050565b60003411156103a6576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006103d67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6103ff565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b60608261041e5761041982610498565b610490565b60008251148015610446575060008473ffffffffffffffffffffffffffffffffffffffff163b145b1561048857836040517f9996b31500000000000000000000000000000000000000000000000000000000815260040161047f9190610757565b60405180910390fd5b819050610491565b5b9392505050565b6000815111156104ab5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000604051905090565b600080fd5b600080fd5b60008085851115610505576105046104e7565b5b83861115610516576105156104ec565b5b6001850283019150848603905094509492505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056182610536565b9050919050565b61057181610556565b811461057c57600080fd5b50565b60008135905061058e81610568565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6105e78261059e565b810181811067ffffffffffffffff82111715610606576106056105af565b5b80604052505050565b60006106196104dd565b905061062582826105de565b919050565b600067ffffffffffffffff821115610645576106446105af565b5b61064e8261059e565b9050602081019050919050565b82818337600083830152505050565b600061067d6106788461062a565b61060f565b90508281526020810184848401111561069957610698610599565b5b6106a484828561065b565b509392505050565b600082601f8301126106c1576106c0610594565b5b81356106d184826020860161066a565b91505092915050565b600080604083850312156106f1576106f061052c565b5b60006106ff8582860161057f565b925050602083013567ffffffffffffffff8111156107205761071f610531565b5b61072c858286016106ac565b9150509250929050565b600061074182610536565b9050919050565b61075181610736565b82525050565b600060208201905061076c6000830184610748565b92915050565b600081519050919050565b600081905092915050565b60005b838110156107a657808201518184015260208101905061078b565b60008484015250505050565b60006107bd82610772565b6107c7818561077d565b93506107d7818560208601610788565b80840191505092915050565b60006107ef82846107b2565b91508190509291505056fea264697066735822122059e0079aa924d58e6fc55bc0a2cf0e8f28861f1f984c33a99264659a0399941164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH2 0xC PUSH2 0xE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16 PUSH2 0x102 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xF7 JUMPI PUSH4 0x4F1EF286 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x0 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0xEA JUMPI PUSH1 0x40 MLOAD PUSH32 0xD2B576EC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF2 PUSH2 0x12A JUMP JUMPDEST PUSH2 0x100 JUMP JUMPDEST PUSH2 0xFF PUSH2 0x160 JUMP JUMPDEST JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLDATASIZE PUSH1 0x4 SWAP1 DUP1 SWAP3 PUSH2 0x141 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4F1 JUMP JUMPDEST DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x6DA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x15C DUP3 DUP3 PUSH2 0x172 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x170 PUSH2 0x16B PUSH2 0x1E5 JUMP JUMPDEST PUSH2 0x1F4 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x17B DUP3 PUSH2 0x21A JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1D8 JUMPI PUSH2 0x1D2 DUP3 DUP3 PUSH2 0x2E7 JUMP JUMPDEST POP PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x36B JUMP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EF PUSH2 0x3A8 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE SUB PUSH2 0x276 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x4C9C8CE300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x2A3 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x311 SWAP2 SWAP1 PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x34C 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 0x351 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x361 DUP6 DUP4 DUP4 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE GT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB398979F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x3FF JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x41E JUMPI PUSH2 0x419 DUP3 PUSH2 0x498 JUMP JUMPDEST PUSH2 0x490 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD EQ DUP1 ISZERO PUSH2 0x446 JUMPI POP PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST ISZERO PUSH2 0x488 JUMPI DUP4 PUSH1 0x40 MLOAD PUSH32 0x9996B31500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x47F SWAP2 SWAP1 PUSH2 0x757 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP PUSH2 0x491 JUMP JUMPDEST JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x4AB JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xD6BDA27500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x505 JUMPI PUSH2 0x504 PUSH2 0x4E7 JUMP JUMPDEST JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x516 JUMPI PUSH2 0x515 PUSH2 0x4EC JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 MUL DUP4 ADD SWAP2 POP DUP5 DUP7 SUB SWAP1 POP SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x561 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x571 DUP2 PUSH2 0x556 JUMP JUMPDEST DUP2 EQ PUSH2 0x57C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x58E DUP2 PUSH2 0x568 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x5E7 DUP3 PUSH2 0x59E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x606 JUMPI PUSH2 0x605 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x619 PUSH2 0x4DD JUMP JUMPDEST SWAP1 POP PUSH2 0x625 DUP3 DUP3 PUSH2 0x5DE JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x645 JUMPI PUSH2 0x644 PUSH2 0x5AF JUMP JUMPDEST JUMPDEST PUSH2 0x64E DUP3 PUSH2 0x59E 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 0x67D PUSH2 0x678 DUP5 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x60F JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x699 JUMPI PUSH2 0x698 PUSH2 0x599 JUMP JUMPDEST JUMPDEST PUSH2 0x6A4 DUP5 DUP3 DUP6 PUSH2 0x65B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x6C1 JUMPI PUSH2 0x6C0 PUSH2 0x594 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x6D1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x66A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6F1 JUMPI PUSH2 0x6F0 PUSH2 0x52C JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP6 DUP3 DUP7 ADD PUSH2 0x57F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x720 JUMPI PUSH2 0x71F PUSH2 0x531 JUMP JUMPDEST JUMPDEST PUSH2 0x72C DUP6 DUP3 DUP7 ADD PUSH2 0x6AC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x741 DUP3 PUSH2 0x536 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x751 DUP2 PUSH2 0x736 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x76C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x78B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BD DUP3 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x7C7 DUP2 DUP6 PUSH2 0x77D JUMP JUMPDEST SWAP4 POP PUSH2 0x7D7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x788 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EF DUP3 DUP5 PUSH2 0x7B2 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE0 SMOD SWAP11 0xA9 0x24 0xD5 DUP15 PUSH16 0xC55BC0A2CF0E8F28861F1F984C33A992 PUSH5 0x659A039994 GT PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"4314:2231:18:-:0;;;2649:11:15;:9;:11::i;:::-;4314:2231:18;5755:369;5830:13;:11;:13::i;:::-;5816:27;;:10;:27;;;5812:306;;5874:54;;;5863:65;;;:7;;;;:65;;;;5859:201;;5955:24;;;;;;;;;;;;;;5859:201;6018:27;:25;:27::i;:::-;5812:306;;;6090:17;:15;:17::i;:::-;5812:306;5755:369::o;5520:93::-;5574:7;5600:6;5593:13;;5520:93;:::o;6326:217::-;6382:25;6409:17;6441:8;;6450:1;6441:12;;;;;;;;;:::i;:::-;6430:42;;;;;;;:::i;:::-;6381:91;;;;6482:54;6512:17;6531:4;6482:29;:54::i;:::-;6371:172;;6326:217::o;2323:83:15:-;2371:28;2381:17;:15;:17::i;:::-;2371:9;:28::i;:::-;2323:83::o;2264:344:14:-;2355:37;2374:17;2355:18;:37::i;:::-;2425:17;2407:36;;;;;;;;;;;;2472:1;2458:4;:11;:15;2454:148;;;2489:53;2518:17;2537:4;2489:28;:53::i;:::-;;2454:148;;;2573:18;:16;:18::i;:::-;2454:148;2264:344;;:::o;1583:132:13:-;1650:7;1676:32;:30;:32::i;:::-;1669:39;;1583:132;:::o;949:895:15:-;1287:14;1284:1;1281;1268:34;1501:1;1498;1482:14;1479:1;1463:14;1456:5;1443:60;1577:16;1574:1;1571;1556:38;1615:6;1687:1;1682:66;;;;1797:16;1794:1;1787:27;1682:66;1717:16;1714:1;1707:27;1671:281:14;1781:1;1748:17;:29;;;:34;1744:119;;1834:17;1805:47;;;;;;;;;;;:::i;:::-;;;;;;;;1744:119;1928:17;1872:47;811:66;1899:19;;1872:26;:47::i;:::-;:53;;;:73;;;;;;;;;;;;;;;;;;1671:281;:::o;3900:253:19:-;3983:12;4008;4022:23;4049:6;:19;;4069:4;4049:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4007:67;;;;4091:55;4118:6;4126:7;4135:10;4091:26;:55::i;:::-;4084:62;;;;3900:253;;;;:::o;6113:122:14:-;6175:1;6163:9;:13;6159:70;;;6199:19;;;;;;;;;;;;;;6159:70;6113:122::o;1441:138::-;1493:7;1519:47;811:66;1546:19;;1519:26;:47::i;:::-;:53;;;;;;;;;;;;1512:60;;1441:138;:::o;1899:163:24:-;1960:21;2042:4;2032:14;;1899:163;;;:::o;4421:582:19:-;4565:12;4594:7;4589:408;;4617:19;4625:10;4617:7;:19::i;:::-;4589:408;;;4862:1;4841:10;:17;:22;:49;;;;;4889:1;4867:6;:18;;;:23;4841:49;4837:119;;;4934:6;4917:24;;;;;;;;;;;:::i;:::-;;;;;;;;4837:119;4976:10;4969:17;;;;4589:408;4421:582;;;;;;:::o;5543:487::-;5694:1;5674:10;:17;:21;5670:354;;;5871:10;5865:17;5927:15;5914:10;5910:2;5906:19;5899:44;5670:354;5994:19;;;;;;;;;;;;;;7:75:44;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:469;439:9;450;488:8;476:10;473:24;470:111;;;500:79;;:::i;:::-;470:111;606:6;596:8;593:20;590:107;;;616:79;;:::i;:::-;590:107;747:1;735:10;731:18;723:6;719:31;706:44;;786:10;776:8;772:25;759:38;;334:469;;;;;;;:::o;809:117::-;918:1;915;908:12;932:117;1041:1;1038;1031:12;1055:126;1092:7;1132:42;1125:5;1121:54;1110:65;;1055:126;;;:::o;1187:104::-;1232:7;1261:24;1279:5;1261:24;:::i;:::-;1250:35;;1187:104;;;:::o;1297:138::-;1378:32;1404:5;1378:32;:::i;:::-;1371:5;1368:43;1358:71;;1425:1;1422;1415:12;1358:71;1297:138;:::o;1441:155::-;1495:5;1533:6;1520:20;1511:29;;1549:41;1584:5;1549:41;:::i;:::-;1441:155;;;;:::o;1602:117::-;1711:1;1708;1701:12;1725:117;1834:1;1831;1824:12;1848:102;1889:6;1940:2;1936:7;1931:2;1924:5;1920:14;1916:28;1906:38;;1848:102;;;:::o;1956:180::-;2004:77;2001:1;1994:88;2101:4;2098:1;2091:15;2125:4;2122:1;2115:15;2142:281;2225:27;2247:4;2225:27;:::i;:::-;2217:6;2213:40;2355:6;2343:10;2340:22;2319:18;2307:10;2304:34;2301:62;2298:88;;;2366:18;;:::i;:::-;2298:88;2406:10;2402:2;2395:22;2185:238;2142:281;;:::o;2429:129::-;2463:6;2490:20;;:::i;:::-;2480:30;;2519:33;2547:4;2539:6;2519:33;:::i;:::-;2429:129;;;:::o;2564:307::-;2625:4;2715:18;2707:6;2704:30;2701:56;;;2737:18;;:::i;:::-;2701:56;2775:29;2797:6;2775:29;:::i;:::-;2767:37;;2859:4;2853;2849:15;2841:23;;2564:307;;;:::o;2877:148::-;2975:6;2970:3;2965;2952:30;3016:1;3007:6;3002:3;2998:16;2991:27;2877:148;;;:::o;3031:423::-;3108:5;3133:65;3149:48;3190:6;3149:48;:::i;:::-;3133:65;:::i;:::-;3124:74;;3221:6;3214:5;3207:21;3259:4;3252:5;3248:16;3297:3;3288:6;3283:3;3279:16;3276:25;3273:112;;;3304:79;;:::i;:::-;3273:112;3394:54;3441:6;3436:3;3431;3394:54;:::i;:::-;3114:340;3031:423;;;;;:::o;3473:338::-;3528:5;3577:3;3570:4;3562:6;3558:17;3554:27;3544:122;;3585:79;;:::i;:::-;3544:122;3702:6;3689:20;3727:78;3801:3;3793:6;3786:4;3778:6;3774:17;3727:78;:::i;:::-;3718:87;;3534:277;3473:338;;;;:::o;3817:668::-;3902:6;3910;3959:2;3947:9;3938:7;3934:23;3930:32;3927:119;;;3965:79;;:::i;:::-;3927:119;4085:1;4110:61;4163:7;4154:6;4143:9;4139:22;4110:61;:::i;:::-;4100:71;;4056:125;4248:2;4237:9;4233:18;4220:32;4279:18;4271:6;4268:30;4265:117;;;4301:79;;:::i;:::-;4265:117;4406:62;4460:7;4451:6;4440:9;4436:22;4406:62;:::i;:::-;4396:72;;4191:287;3817:668;;;;;:::o;4491:96::-;4528:7;4557:24;4575:5;4557:24;:::i;:::-;4546:35;;4491:96;;;:::o;4593:118::-;4680:24;4698:5;4680:24;:::i;:::-;4675:3;4668:37;4593:118;;:::o;4717:222::-;4810:4;4848:2;4837:9;4833:18;4825:26;;4861:71;4929:1;4918:9;4914:17;4905:6;4861:71;:::i;:::-;4717:222;;;;:::o;4945:98::-;4996:6;5030:5;5024:12;5014:22;;4945:98;;;:::o;5049:147::-;5150:11;5187:3;5172:18;;5049:147;;;;:::o;5202:248::-;5284:1;5294:113;5308:6;5305:1;5302:13;5294:113;;;5393:1;5388:3;5384:11;5378:18;5374:1;5369:3;5365:11;5358:39;5330:2;5327:1;5323:10;5318:15;;5294:113;;;5441:1;5432:6;5427:3;5423:16;5416:27;5264:186;5202:248;;;:::o;5456:386::-;5560:3;5588:38;5620:5;5588:38;:::i;:::-;5642:88;5723:6;5718:3;5642:88;:::i;:::-;5635:95;;5739:65;5797:6;5792:3;5785:4;5778:5;5774:16;5739:65;:::i;:::-;5829:6;5824:3;5820:16;5813:23;;5564:278;5456:386;;;;:::o;5848:271::-;5978:3;6000:93;6089:3;6080:6;6000:93;:::i;:::-;5993:100;;6110:3;6103:10;;5848:271;;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProxyDeniedAdminAccess\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable through an associated {ProxyAdmin} instance. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself. 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function but any other call won't be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating the proxy admin cannot fallback to the target implementation. These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin} and allows upgrades only if they come through it. You should think of the `ProxyAdmin` instance as the administrative interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership. NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to fully implement transparency without decoding reverts caused by selector clashes between the proxy and the implementation. NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin} of this contract won't send a meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract. IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot is generally fine if the implementation is trusted. WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidAdmin(address)\":[{\"details\":\"The `admin` of the proxy is invalid.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"ProxyDeniedAdminAccess()\":[{\"details\":\"The proxy caller is the current admin, and can't fallback to the proxy target.\"}]},\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin} with an `initialOwner`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"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/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0x0a8a5b994d4c4da9f61d128945cc8c9e60dcbc72bf532f72ae42a48ea90eed9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ae15b6b1079b9d3c73913424d4278139f9e9c9658316675b9c48d5883a50d\",\"dweb:/ipfs/QmWLxBYfp8j1YjNMabWgv75ELTaK2eEYEEGx7qsJbxVZZq\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol\":{\"keccak256\":\"0xeb19221d51578ea190f0b7d807c5f196db6ff4eca90fee396f45ce9669080ba0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4ca4196dab20274d1276d902d17034065f014aeebf496f20e39e760899650b0\",\"dweb:/ipfs/QmXFoF93GmZgZHbUvSqLjBGnQ3MY429Bnvk7SvLKEUsEAN\"]},\"@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0x724b755843cff10a8e1503d374b857c9e7648be24e7acf1e5bee0584f1b0505c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740ad3ba1c12e426ea32cf234f445431a13efa8dbed38b53c869237e31fc8347\",\"dweb:/ipfs/QmQ3UKUnBQn4gjxjDNGuDLQWuQqcxWzyj1HzwjFgjAJBqh\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033","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 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"233:5799:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3d621977f064e384d77a7f38001fcbf2e2b714139e5fb526a1fd3072a79689164736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xD6 0x21 SWAP8 PUSH32 0x64E384D77A7F38001FCBF2E2B714139E5FB526A1FD3072A79689164736F6C63 NUMBER STOP ADDMOD SHR STOP CALLER ","sourceMap":"233:5799:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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}}},"@openzeppelin/contracts/utils/Errors.sol":{"Errors":{"abi":[{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"MissingPrecompile","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033","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 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"411:484:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122004b89e72da43ab1ee05bd033fb62a621154a79713cd82d3cd8a0e9353695a64e64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIV 0xB8 SWAP15 PUSH19 0xDA43AB1EE05BD033FB62A621154A79713CD82D EXTCODECOPY 0xD8 LOG0 0xE9 CALLDATALOAD CALLDATASIZE SWAP6 0xA6 0x4E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"411:484:21:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"MissingPrecompile\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of common custom errors used in multiple contracts IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library. It is recommended to avoid relying on the error API for critical functionality. _Available since v5.1._\",\"errors\":{\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"MissingPrecompile(address)\":[{\"details\":\"A necessary precompile is missing.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Errors.sol\":\"Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033","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 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"657:1315:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122044fd5c6dc22ace3217436b923d3288726ebe1f48ed972abfbb54a291caab641964736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO REVERT TLOAD PUSH14 0xC22ACE3217436B923D3288726EBE 0x1F BASEFEE 0xED SWAP8 0x2A 0xBF 0xBB SLOAD LOG2 SWAP2 0xCA 0xAB PUSH5 0x1964736F6C PUSH4 0x4300081C STOP CALLER ","sourceMap":"657:1315:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example {      using Panic for uint256;      // Use any of the declared internal constants      function foo() { Panic.GENERIC.panic(); }      // Alternatively      function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/Pausable.sol":{"Pausable":{"abi":[{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}]},\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"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\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":3500,"contract":"@openzeppelin/contracts/utils/Pausable.sol:Pausable","label":"_paused","offset":0,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}}}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033","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 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1407:2774:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b93eefa26a1cecc5003f9a8a0abb4a23d8503ef65d8338e7fd9d3442221a9e9c64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 RETURNDATACOPY 0xEF LOG2 PUSH11 0x1CECC5003F9A8A0ABB4A23 0xD8 POP RETURNDATACOPY 0xF6 TSTORE DUP4 CODESIZE 0xE7 REVERT SWAP14 CALLVALUE TIMESTAMP 0x22 BYTE SWAP15 SWAP13 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"1407:2774:24:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 {     // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(newImplementation.code.length > 0);         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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 ERC-165 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\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"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 ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. 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[ERC 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\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033","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 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"281:28026:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f7d06953f5fe20dd24fbcb0fc8475806a42e254e8536e5da3358df77baeec5e64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F PUSH30 0x6953F5FE20DD24FBCB0FC8475806A42E254E8536E5DA3358DF77BAEEC5E PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"281:28026:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"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/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033","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 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"769:34173:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b619700e36f8286c341dba52edf08c2ac628f28267f87863dc4a18698b0d4f3f64736f6c634300081c0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 NOT PUSH17 0xE36F8286C341DBA52EDF08C2AC628F282 PUSH8 0xF87863DC4A18698B 0xD 0x4F EXTCODEHASH PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"769:34173:28:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/DomainMangager/DomainManager.sol":{"DomainManager":{"abi":[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"AccountIsNotDomainOwner","type":"error"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"Contract module that implement access control only to owners of a domain in the SCI Registry.\",\"errors\":{\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract with references to the SCI Registry.\",\"params\":{\"_sciRegistry\":\"Address of the SCI Registry contract.\"}}},\"title\":\"DomainManager\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DomainMangager/DomainManager.sol\":\"DomainManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0xa7255ab117f153218959a12397fadd772faad8ae921f280117846caac435fff1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://45ee7ac9a777795422a546a62d945913c3f2ff67bdb57367b899e0db65f58962\",\"dweb:/ipfs/QmVz5cJq7qbifkSUcG9bKw6Y5uYny22VJJuVbrfqrjGa81\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/Op/ICrossDomainMessanger.sol":{"ICrossDomainMessanger":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"sendMessage(address,bytes,uint32)":"3dbb202b","xDomainMessageSender()":"6e296e45"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the Superchain Cross Domain Messenger which facilitates sending messages between a source and a target chain.\",\"kind\":\"dev\",\"methods\":{\"sendMessage(address,bytes,uint32)\":{\"details\":\"Sends a message to a target contract on a different chain.\",\"params\":{\"_message\":\"The encoded message data containing function selectors and parameters.\",\"gasLimit\":\"The maximum amount of gas allocated for executing the message on the target chain.\",\"target\":\"The address of the target contract on the destination chain.\"}},\"xDomainMessageSender()\":{\"details\":\"Retrieves the address of the sender of the cross-domain message.\",\"returns\":{\"_0\":\"The address of the entity that originated the cross-domain message.\"}}},\"title\":\"ICrossDomainMessanger\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Op/ICrossDomainMessanger.sol\":\"ICrossDomainMessanger\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol":{"SuperChainAccessControlDefaultAdminRules":{"abi":[{"inputs":[{"internalType":"address","name":"_crossDomainMessanger","type":"address"},{"internalType":"uint48","name":"initialDelay","type":"uint48"},{"internalType":"address","name":"initialDefaultAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidMessageSender","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"crossDomainMessanger","outputs":[{"internalType":"contract ICrossDomainMessanger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1784":{"entryPoint":null,"id":1784,"parameterSlots":2,"returnSlots":0},"@_7305":{"entryPoint":null,"id":7305,"parameterSlots":3,"returnSlots":0},"@_grantRole_1449":{"entryPoint":544,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":285,"id":1970,"parameterSlots":2,"returnSlots":1},"@_msgSender_3399":{"entryPoint":903,"id":3399,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":502,"id":2035,"parameterSlots":0,"returnSlots":1},"@hasRole_1273":{"entryPoint":797,"id":1273,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":989,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48_fromMemory":{"entryPoint":1051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint48t_address_fromMemory":{"entryPoint":1072,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1155,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1170,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":948,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":916,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":1010,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":911,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":966,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":1028,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2237:44","nodeType":"YulBlock","src":"0:2237:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"889:53:44","nodeType":"YulBlock","src":"889:53:44","statements":[{"nativeSrc":"899:37:44","nodeType":"YulAssignment","src":"899:37:44","value":{"arguments":[{"name":"value","nativeSrc":"914:5:44","nodeType":"YulIdentifier","src":"914:5:44"},{"kind":"number","nativeSrc":"921:14:44","nodeType":"YulLiteral","src":"921:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"910:3:44","nodeType":"YulIdentifier","src":"910:3:44"},"nativeSrc":"910:26:44","nodeType":"YulFunctionCall","src":"910:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"899:7:44","nodeType":"YulIdentifier","src":"899:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"845:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"871:5:44","nodeType":"YulTypedName","src":"871:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"881:7:44","nodeType":"YulTypedName","src":"881:7:44","type":""}],"src":"845:97:44"},{"body":{"nativeSrc":"990:78:44","nodeType":"YulBlock","src":"990:78:44","statements":[{"body":{"nativeSrc":"1046:16:44","nodeType":"YulBlock","src":"1046:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1055:1:44","nodeType":"YulLiteral","src":"1055:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1058:1:44","nodeType":"YulLiteral","src":"1058:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1048:6:44","nodeType":"YulIdentifier","src":"1048:6:44"},"nativeSrc":"1048:12:44","nodeType":"YulFunctionCall","src":"1048:12:44"},"nativeSrc":"1048:12:44","nodeType":"YulExpressionStatement","src":"1048:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1013:5:44","nodeType":"YulIdentifier","src":"1013:5:44"},{"arguments":[{"name":"value","nativeSrc":"1037:5:44","nodeType":"YulIdentifier","src":"1037:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1020:16:44","nodeType":"YulIdentifier","src":"1020:16:44"},"nativeSrc":"1020:23:44","nodeType":"YulFunctionCall","src":"1020:23:44"}],"functionName":{"name":"eq","nativeSrc":"1010:2:44","nodeType":"YulIdentifier","src":"1010:2:44"},"nativeSrc":"1010:34:44","nodeType":"YulFunctionCall","src":"1010:34:44"}],"functionName":{"name":"iszero","nativeSrc":"1003:6:44","nodeType":"YulIdentifier","src":"1003:6:44"},"nativeSrc":"1003:42:44","nodeType":"YulFunctionCall","src":"1003:42:44"},"nativeSrc":"1000:62:44","nodeType":"YulIf","src":"1000:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"948:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"983:5:44","nodeType":"YulTypedName","src":"983:5:44","type":""}],"src":"948:120:44"},{"body":{"nativeSrc":"1136:79:44","nodeType":"YulBlock","src":"1136:79:44","statements":[{"nativeSrc":"1146:22:44","nodeType":"YulAssignment","src":"1146:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"}],"functionName":{"name":"mload","nativeSrc":"1155:5:44","nodeType":"YulIdentifier","src":"1155:5:44"},"nativeSrc":"1155:13:44","nodeType":"YulFunctionCall","src":"1155:13:44"},"variableNames":[{"name":"value","nativeSrc":"1146:5:44","nodeType":"YulIdentifier","src":"1146:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1203:5:44","nodeType":"YulIdentifier","src":"1203:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"1177:25:44","nodeType":"YulIdentifier","src":"1177:25:44"},"nativeSrc":"1177:32:44","nodeType":"YulFunctionCall","src":"1177:32:44"},"nativeSrc":"1177:32:44","nodeType":"YulExpressionStatement","src":"1177:32:44"}]},"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1074:141:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1114:6:44","nodeType":"YulTypedName","src":"1114:6:44","type":""},{"name":"end","nativeSrc":"1122:3:44","nodeType":"YulTypedName","src":"1122:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1130:5:44","nodeType":"YulTypedName","src":"1130:5:44","type":""}],"src":"1074:141:44"},{"body":{"nativeSrc":"1331:551:44","nodeType":"YulBlock","src":"1331:551:44","statements":[{"body":{"nativeSrc":"1377:83:44","nodeType":"YulBlock","src":"1377:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1379:77:44","nodeType":"YulIdentifier","src":"1379:77:44"},"nativeSrc":"1379:79:44","nodeType":"YulFunctionCall","src":"1379:79:44"},"nativeSrc":"1379:79:44","nodeType":"YulExpressionStatement","src":"1379:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1352:7:44","nodeType":"YulIdentifier","src":"1352:7:44"},{"name":"headStart","nativeSrc":"1361:9:44","nodeType":"YulIdentifier","src":"1361:9:44"}],"functionName":{"name":"sub","nativeSrc":"1348:3:44","nodeType":"YulIdentifier","src":"1348:3:44"},"nativeSrc":"1348:23:44","nodeType":"YulFunctionCall","src":"1348:23:44"},{"kind":"number","nativeSrc":"1373:2:44","nodeType":"YulLiteral","src":"1373:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1344:3:44","nodeType":"YulIdentifier","src":"1344:3:44"},"nativeSrc":"1344:32:44","nodeType":"YulFunctionCall","src":"1344:32:44"},"nativeSrc":"1341:119:44","nodeType":"YulIf","src":"1341:119:44"},{"nativeSrc":"1470:128:44","nodeType":"YulBlock","src":"1470:128:44","statements":[{"nativeSrc":"1485:15:44","nodeType":"YulVariableDeclaration","src":"1485:15:44","value":{"kind":"number","nativeSrc":"1499:1:44","nodeType":"YulLiteral","src":"1499:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1489:6:44","nodeType":"YulTypedName","src":"1489:6:44","type":""}]},{"nativeSrc":"1514:74:44","nodeType":"YulAssignment","src":"1514:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1560:9:44","nodeType":"YulIdentifier","src":"1560:9:44"},{"name":"offset","nativeSrc":"1571:6:44","nodeType":"YulIdentifier","src":"1571:6:44"}],"functionName":{"name":"add","nativeSrc":"1556:3:44","nodeType":"YulIdentifier","src":"1556:3:44"},"nativeSrc":"1556:22:44","nodeType":"YulFunctionCall","src":"1556:22:44"},{"name":"dataEnd","nativeSrc":"1580:7:44","nodeType":"YulIdentifier","src":"1580:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1524:31:44","nodeType":"YulIdentifier","src":"1524:31:44"},"nativeSrc":"1524:64:44","nodeType":"YulFunctionCall","src":"1524:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1514:6:44","nodeType":"YulIdentifier","src":"1514:6:44"}]}]},{"nativeSrc":"1608:128:44","nodeType":"YulBlock","src":"1608:128:44","statements":[{"nativeSrc":"1623:16:44","nodeType":"YulVariableDeclaration","src":"1623:16:44","value":{"kind":"number","nativeSrc":"1637:2:44","nodeType":"YulLiteral","src":"1637:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1627:6:44","nodeType":"YulTypedName","src":"1627:6:44","type":""}]},{"nativeSrc":"1653:73:44","nodeType":"YulAssignment","src":"1653:73:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1698:9:44","nodeType":"YulIdentifier","src":"1698:9:44"},{"name":"offset","nativeSrc":"1709:6:44","nodeType":"YulIdentifier","src":"1709:6:44"}],"functionName":{"name":"add","nativeSrc":"1694:3:44","nodeType":"YulIdentifier","src":"1694:3:44"},"nativeSrc":"1694:22:44","nodeType":"YulFunctionCall","src":"1694:22:44"},{"name":"dataEnd","nativeSrc":"1718:7:44","nodeType":"YulIdentifier","src":"1718:7:44"}],"functionName":{"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1663:30:44","nodeType":"YulIdentifier","src":"1663:30:44"},"nativeSrc":"1663:63:44","nodeType":"YulFunctionCall","src":"1663:63:44"},"variableNames":[{"name":"value1","nativeSrc":"1653:6:44","nodeType":"YulIdentifier","src":"1653:6:44"}]}]},{"nativeSrc":"1746:129:44","nodeType":"YulBlock","src":"1746:129:44","statements":[{"nativeSrc":"1761:16:44","nodeType":"YulVariableDeclaration","src":"1761:16:44","value":{"kind":"number","nativeSrc":"1775:2:44","nodeType":"YulLiteral","src":"1775:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1765:6:44","nodeType":"YulTypedName","src":"1765:6:44","type":""}]},{"nativeSrc":"1791:74:44","nodeType":"YulAssignment","src":"1791:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1837:9:44","nodeType":"YulIdentifier","src":"1837:9:44"},{"name":"offset","nativeSrc":"1848:6:44","nodeType":"YulIdentifier","src":"1848:6:44"}],"functionName":{"name":"add","nativeSrc":"1833:3:44","nodeType":"YulIdentifier","src":"1833:3:44"},"nativeSrc":"1833:22:44","nodeType":"YulFunctionCall","src":"1833:22:44"},{"name":"dataEnd","nativeSrc":"1857:7:44","nodeType":"YulIdentifier","src":"1857:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1801:31:44","nodeType":"YulIdentifier","src":"1801:31:44"},"nativeSrc":"1801:64:44","nodeType":"YulFunctionCall","src":"1801:64:44"},"variableNames":[{"name":"value2","nativeSrc":"1791:6:44","nodeType":"YulIdentifier","src":"1791:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint48t_address_fromMemory","nativeSrc":"1221:661:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1285:9:44","nodeType":"YulTypedName","src":"1285:9:44","type":""},{"name":"dataEnd","nativeSrc":"1296:7:44","nodeType":"YulTypedName","src":"1296:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1308:6:44","nodeType":"YulTypedName","src":"1308:6:44","type":""},{"name":"value1","nativeSrc":"1316:6:44","nodeType":"YulTypedName","src":"1316:6:44","type":""},{"name":"value2","nativeSrc":"1324:6:44","nodeType":"YulTypedName","src":"1324:6:44","type":""}],"src":"1221:661:44"},{"body":{"nativeSrc":"1953:53:44","nodeType":"YulBlock","src":"1953:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1970:3:44","nodeType":"YulIdentifier","src":"1970:3:44"},{"arguments":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulIdentifier","src":"1993:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1975:17:44","nodeType":"YulIdentifier","src":"1975:17:44"},"nativeSrc":"1975:24:44","nodeType":"YulFunctionCall","src":"1975:24:44"}],"functionName":{"name":"mstore","nativeSrc":"1963:6:44","nodeType":"YulIdentifier","src":"1963:6:44"},"nativeSrc":"1963:37:44","nodeType":"YulFunctionCall","src":"1963:37:44"},"nativeSrc":"1963:37:44","nodeType":"YulExpressionStatement","src":"1963:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1888:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1941:5:44","nodeType":"YulTypedName","src":"1941:5:44","type":""},{"name":"pos","nativeSrc":"1948:3:44","nodeType":"YulTypedName","src":"1948:3:44","type":""}],"src":"1888:118:44"},{"body":{"nativeSrc":"2110:124:44","nodeType":"YulBlock","src":"2110:124:44","statements":[{"nativeSrc":"2120:26:44","nodeType":"YulAssignment","src":"2120:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2132:9:44","nodeType":"YulIdentifier","src":"2132:9:44"},{"kind":"number","nativeSrc":"2143:2:44","nodeType":"YulLiteral","src":"2143:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2128:3:44","nodeType":"YulIdentifier","src":"2128:3:44"},"nativeSrc":"2128:18:44","nodeType":"YulFunctionCall","src":"2128:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2120:4:44","nodeType":"YulIdentifier","src":"2120:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2200:6:44","nodeType":"YulIdentifier","src":"2200:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2213:9:44","nodeType":"YulIdentifier","src":"2213:9:44"},{"kind":"number","nativeSrc":"2224:1:44","nodeType":"YulLiteral","src":"2224:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2209:3:44","nodeType":"YulIdentifier","src":"2209:3:44"},"nativeSrc":"2209:17:44","nodeType":"YulFunctionCall","src":"2209:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2156:43:44","nodeType":"YulIdentifier","src":"2156:43:44"},"nativeSrc":"2156:71:44","nodeType":"YulFunctionCall","src":"2156:71:44"},"nativeSrc":"2156:71:44","nodeType":"YulExpressionStatement","src":"2156:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2012:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2082:9:44","nodeType":"YulTypedName","src":"2082:9:44","type":""},{"name":"value0","nativeSrc":"2094:6:44","nodeType":"YulTypedName","src":"2094:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2105:4:44","nodeType":"YulTypedName","src":"2105:4:44","type":""}],"src":"2012:222:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint48t_address_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint48_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611c3f380380611c3f83398181016040528101906100329190610430565b8181600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a65760006040517fc22c802200000000000000000000000000000000000000000000000000000000815260040161009d9190610492565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100de6000801b8261011d60201b60201c565b5050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050506104ad565b60008060001b83036101de57600073ffffffffffffffffffffffffffffffffffffffff1661014f6101f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461019c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6101ee838361022060201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610232838361031d60201b60201c565b61031257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102af61038760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610317565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103bf82610394565b9050919050565b6103cf816103b4565b81146103da57600080fd5b50565b6000815190506103ec816103c6565b92915050565b600065ffffffffffff82169050919050565b61040d816103f2565b811461041857600080fd5b50565b60008151905061042a81610404565b92915050565b6000806000606084860312156104495761044861038f565b5b6000610457868287016103dd565b93505060206104688682870161041b565b9250506040610479868287016103dd565b9150509250925092565b61048c816103b4565b82525050565b60006020820190506104a76000830184610483565b92915050565b6080516117776104c860003960006103d901526117776000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806384ef8ffc116100ad578063cc8463c811610071578063cc8463c8146102e5578063cefc142914610303578063cf6eefb71461030d578063d547741f1461032c578063d602b9fd1461034857610121565b806384ef8ffc1461023c5780638da5cb5b1461025a57806391d1485414610278578063a1eda53c146102a8578063a217fddf146102c757610121565b8063248a9ca3116100f4578063248a9ca31461019c5780632f2ff15d146101cc57806336568abe146101e8578063634e93da14610204578063649a5ec71461022057610121565b806301ffc9a714610126578063022d63fb14610156578063095f025e146101745780630aa6220b14610192575b600080fd5b610140600480360381019061013b91906112a5565b610352565b60405161014d91906112ed565b60405180910390f35b61015e6103cc565b60405161016b9190611329565b60405180910390f35b61017c6103d7565b60405161018991906113c3565b60405180910390f35b61019a6103fb565b005b6101b660048036038101906101b19190611414565b610413565b6040516101c39190611450565b60405180910390f35b6101e660048036038101906101e191906114a9565b610432565b005b61020260048036038101906101fd91906114a9565b61047c565b005b61021e600480360381019061021991906114e9565b610591565b005b61023a60048036038101906102359190611542565b6105ab565b005b6102446105c5565b604051610251919061157e565b60405180910390f35b6102626105ef565b60405161026f919061157e565b60405180910390f35b610292600480360381019061028d91906114a9565b6105fe565b60405161029f91906112ed565b60405180910390f35b6102b0610668565b6040516102be929190611599565b60405180910390f35b6102cf6106c8565b6040516102dc9190611450565b60405180910390f35b6102ed6106cf565b6040516102fa9190611329565b60405180910390f35b61030b61073d565b005b6103156107d3565b6040516103239291906115c2565b60405180910390f35b610346600480360381019061034191906114a9565b610816565b005b610350610860565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103c557506103c482610878565b5b9050919050565b600062069780905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b610408816108f2565b610410610906565b50565b6000806000838152602001908152602001600020600101549050919050565b6000801b820361046e576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104788282610913565b5050565b6000801b821480156104c057506104916105c5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610583576000806104d06107d3565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610516575061051481610935565b155b8061052757506105258161094a565b155b1561056957806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105609190611329565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b61058d828261095e565b5050565b6000801b61059e816108f2565b6105a7826109d9565b5050565b6000801b6105b8816108f2565b6105c182610a54565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006105f96105c5565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061068b81610935565b801561069d575061069b8161094a565b155b6106a9576000806106c0565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b6000806002601a9054906101000a900465ffffffffffff1690506106f281610935565b801561070357506107028161094a565b5b610721576001601a9054906101000a900465ffffffffffff16610737565b600260149054906101000a900465ffffffffffff165b91505090565b60006107476107d3565b5090508073ffffffffffffffffffffffffffffffffffffffff16610769610abb565b73ffffffffffffffffffffffffffffffffffffffff16146107c85761078c610abb565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016107bf919061157e565b60405180910390fd5b6107d0610ac3565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b8203610852576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085c8282610b92565b5050565b6000801b61086d816108f2565b610875610bb4565b50565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108eb57506108ea82610bc1565b5b9050919050565b610903816108fe610abb565b610c2b565b50565b610911600080610c7c565b565b61091c82610413565b610925816108f2565b61092f8383610d6c565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610966610abb565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d48282610e39565b505050565b60006109e36106cf565b6109ec42610ebc565b6109f6919061161a565b9050610a028282610f16565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610a489190611329565b60405180910390a25050565b6000610a5f82610fc9565b610a6842610ebc565b610a72919061161a565b9050610a7e8282610c7c565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610aaf929190611599565b60405180910390a15050565b600033905090565b600080610ace6107d3565b91509150610adb81610935565b1580610aed5750610aeb8161094a565b155b15610b2f57806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610b269190611329565b60405180910390fd5b610b436000801b610b3e6105c5565b610e39565b50610b516000801b83610d6c565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610b9b82610413565b610ba4816108f2565b610bae8383610e39565b50505050565b610bbf600080610f16565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c3582826105fe565b610c785780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610c6f929190611654565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610c9e81610935565b15610d1d57610cac8161094a565b15610cef57600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610d1c565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b8303610e2757600073ffffffffffffffffffffffffffffffffffffffff16610d986105c5565b73ffffffffffffffffffffffffffffffffffffffff1614610de5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610e318383611028565b905092915050565b60008060001b83148015610e7f5750610e506105c5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610eaa57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b610eb48383611119565b905092915050565b600065ffffffffffff8016821115610f0e576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401610f059291906116de565b60405180910390fd5b819050919050565b6000610f206107d3565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f9281610935565b15610fc4577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b600080610fd46106cf565b90508065ffffffffffff168365ffffffffffff1611610ffe578281610ff99190611707565b611020565b61101f8365ffffffffffff166110126103cc565b65ffffffffffff1661120b565b5b915050919050565b600061103483836105fe565b61110e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506110ab610abb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611113565b600090505b92915050565b600061112583836105fe565b1561120057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061119d610abb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611205565b600090505b92915050565b600061121a8284108484611222565b905092915050565b600061122d8461123c565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6112828161124d565b811461128d57600080fd5b50565b60008135905061129f81611279565b92915050565b6000602082840312156112bb576112ba611248565b5b60006112c984828501611290565b91505092915050565b60008115159050919050565b6112e7816112d2565b82525050565b600060208201905061130260008301846112de565b92915050565b600065ffffffffffff82169050919050565b61132381611308565b82525050565b600060208201905061133e600083018461131a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061138961138461137f84611344565b611364565b611344565b9050919050565b600061139b8261136e565b9050919050565b60006113ad82611390565b9050919050565b6113bd816113a2565b82525050565b60006020820190506113d860008301846113b4565b92915050565b6000819050919050565b6113f1816113de565b81146113fc57600080fd5b50565b60008135905061140e816113e8565b92915050565b60006020828403121561142a57611429611248565b5b6000611438848285016113ff565b91505092915050565b61144a816113de565b82525050565b60006020820190506114656000830184611441565b92915050565b600061147682611344565b9050919050565b6114868161146b565b811461149157600080fd5b50565b6000813590506114a38161147d565b92915050565b600080604083850312156114c0576114bf611248565b5b60006114ce858286016113ff565b92505060206114df85828601611494565b9150509250929050565b6000602082840312156114ff576114fe611248565b5b600061150d84828501611494565b91505092915050565b61151f81611308565b811461152a57600080fd5b50565b60008135905061153c81611516565b92915050565b60006020828403121561155857611557611248565b5b60006115668482850161152d565b91505092915050565b6115788161146b565b82525050565b6000602082019050611593600083018461156f565b92915050565b60006040820190506115ae600083018561131a565b6115bb602083018461131a565b9392505050565b60006040820190506115d7600083018561156f565b6115e4602083018461131a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061162582611308565b915061163083611308565b9250828201905065ffffffffffff81111561164e5761164d6115eb565b5b92915050565b6000604082019050611669600083018561156f565b6116766020830184611441565b9392505050565b6000819050919050565b600060ff82169050919050565b60006116af6116aa6116a58461167d565b611364565b611687565b9050919050565b6116bf81611694565b82525050565b6000819050919050565b6116d8816116c5565b82525050565b60006040820190506116f360008301856116b6565b61170060208301846116cf565b9392505050565b600061171282611308565b915061171d83611308565b9250828203905065ffffffffffff81111561173b5761173a6115eb565b5b9291505056fea2646970667358221220d08dc27d37232bd451d6a0db84bf9e7c89d75fd4721f17fc992d67d97c2d740a64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1C3F CODESIZE SUB DUP1 PUSH2 0x1C3F DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA6 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D SWAP2 SWAP1 PUSH2 0x492 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x11D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP POP PUSH2 0x4AD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x1DE JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14F PUSH2 0x1F6 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19C JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1EE DUP4 DUP4 PUSH2 0x220 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP4 DUP4 PUSH2 0x31D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x312 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x2AF PUSH2 0x387 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x317 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BF DUP3 PUSH2 0x394 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3CF DUP2 PUSH2 0x3B4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3EC DUP2 PUSH2 0x3C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x40D DUP2 PUSH2 0x3F2 JUMP JUMPDEST DUP2 EQ PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x42A DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x449 JUMPI PUSH2 0x448 PUSH2 0x38F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x457 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x468 DUP7 DUP3 DUP8 ADD PUSH2 0x41B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x479 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x48C DUP2 PUSH2 0x3B4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4A7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x483 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1777 PUSH2 0x4C8 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x3D9 ADD MSTORE PUSH2 0x1777 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 0x121 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84EF8FFC GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x348 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x25A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2C7 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x220 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95F025E EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x140 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x12A5 JUMP JUMPDEST PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14D SWAP2 SWAP1 PUSH2 0x12ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15E PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17C PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x189 SWAP2 SWAP1 PUSH2 0x13C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH2 0x3FB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0x1414 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1450 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E1 SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x432 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x202 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x47C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x14E9 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x1542 JUMP JUMPDEST PUSH2 0x5AB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x244 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x262 PUSH2 0x5EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26F SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x5FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x12ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B0 PUSH2 0x668 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BE SWAP3 SWAP2 SWAP1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CF PUSH2 0x6C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DC SWAP2 SWAP1 PUSH2 0x1450 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2ED PUSH2 0x6CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30B PUSH2 0x73D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x315 PUSH2 0x7D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP3 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x346 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x341 SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x816 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x350 PUSH2 0x860 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x3C5 JUMPI POP PUSH2 0x3C4 DUP3 PUSH2 0x878 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x408 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x410 PUSH2 0x906 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x46E JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x478 DUP3 DUP3 PUSH2 0x913 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x4C0 JUMPI POP PUSH2 0x491 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x583 JUMPI PUSH1 0x0 DUP1 PUSH2 0x4D0 PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x516 JUMPI POP PUSH2 0x514 DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x527 JUMPI POP PUSH2 0x525 DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x569 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x560 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x58D DUP3 DUP3 PUSH2 0x95E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x59E DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x5A7 DUP3 PUSH2 0x9D9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x5B8 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x5C1 DUP3 PUSH2 0xA54 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F9 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x68B DUP2 PUSH2 0x935 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x69D JUMPI POP PUSH2 0x69B DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x6F2 DUP2 PUSH2 0x935 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x703 JUMPI POP PUSH2 0x702 DUP2 PUSH2 0x94A JUMP JUMPDEST JUMPDEST PUSH2 0x721 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x737 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x7D3 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x769 PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7C8 JUMPI PUSH2 0x78C PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D0 PUSH2 0xAC3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x852 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x85C DUP3 DUP3 PUSH2 0xB92 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x86D DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x875 PUSH2 0xBB4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8EB JUMPI POP PUSH2 0x8EA DUP3 PUSH2 0xBC1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x903 DUP2 PUSH2 0x8FE PUSH2 0xABB JUMP JUMPDEST PUSH2 0xC2B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x911 PUSH1 0x0 DUP1 PUSH2 0xC7C JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x91C DUP3 PUSH2 0x413 JUMP JUMPDEST PUSH2 0x925 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x92F DUP4 DUP4 PUSH2 0xD6C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x966 PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9D4 DUP3 DUP3 PUSH2 0xE39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E3 PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x9EC TIMESTAMP PUSH2 0xEBC JUMP JUMPDEST PUSH2 0x9F6 SWAP2 SWAP1 PUSH2 0x161A JUMP JUMPDEST SWAP1 POP PUSH2 0xA02 DUP3 DUP3 PUSH2 0xF16 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xA48 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA5F DUP3 PUSH2 0xFC9 JUMP JUMPDEST PUSH2 0xA68 TIMESTAMP PUSH2 0xEBC JUMP JUMPDEST PUSH2 0xA72 SWAP2 SWAP1 PUSH2 0x161A JUMP JUMPDEST SWAP1 POP PUSH2 0xA7E DUP3 DUP3 PUSH2 0xC7C JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xAAF SWAP3 SWAP2 SWAP1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xACE PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xADB DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xAED JUMPI POP PUSH2 0xAEB DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB2F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB43 PUSH1 0x0 DUP1 SHL PUSH2 0xB3E PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0xE39 JUMP JUMPDEST POP PUSH2 0xB51 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xD6C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB9B DUP3 PUSH2 0x413 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0xBAE DUP4 DUP4 PUSH2 0xE39 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xBBF PUSH1 0x0 DUP1 PUSH2 0xF16 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC35 DUP3 DUP3 PUSH2 0x5FE JUMP JUMPDEST PUSH2 0xC78 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC6F SWAP3 SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xC9E DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO PUSH2 0xD1D JUMPI PUSH2 0xCAC DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO PUSH2 0xCEF JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xD1C JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xE27 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD98 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDE5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xE31 DUP4 DUP4 PUSH2 0x1028 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0xE7F JUMPI POP PUSH2 0xE50 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xEAA JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0xEB4 DUP4 DUP4 PUSH2 0x1119 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0xF0E JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF05 SWAP3 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF20 PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF92 DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO PUSH2 0xFC4 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xFD4 PUSH2 0x6CF JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0xFFE JUMPI DUP3 DUP2 PUSH2 0xFF9 SWAP2 SWAP1 PUSH2 0x1707 JUMP JUMPDEST PUSH2 0x1020 JUMP JUMPDEST PUSH2 0x101F DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1012 PUSH2 0x3CC JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x120B JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1034 DUP4 DUP4 PUSH2 0x5FE JUMP JUMPDEST PUSH2 0x110E JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x10AB PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1113 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP4 DUP4 PUSH2 0x5FE JUMP JUMPDEST ISZERO PUSH2 0x1200 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x119D PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x121A DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1222 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122D DUP5 PUSH2 0x123C JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1282 DUP2 PUSH2 0x124D JUMP JUMPDEST DUP2 EQ PUSH2 0x128D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x129F DUP2 PUSH2 0x1279 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12C9 DUP5 DUP3 DUP6 ADD PUSH2 0x1290 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E7 DUP2 PUSH2 0x12D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1302 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1323 DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x133E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x131A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1389 PUSH2 0x1384 PUSH2 0x137F DUP5 PUSH2 0x1344 JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x1344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139B DUP3 PUSH2 0x136E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AD DUP3 PUSH2 0x1390 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13BD DUP2 PUSH2 0x13A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13F1 DUP2 PUSH2 0x13DE JUMP JUMPDEST DUP2 EQ PUSH2 0x13FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x140E DUP2 PUSH2 0x13E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142A JUMPI PUSH2 0x1429 PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1438 DUP5 DUP3 DUP6 ADD PUSH2 0x13FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x144A DUP2 PUSH2 0x13DE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1465 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1441 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1476 DUP3 PUSH2 0x1344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1486 DUP2 PUSH2 0x146B JUMP JUMPDEST DUP2 EQ PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14A3 DUP2 PUSH2 0x147D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14C0 JUMPI PUSH2 0x14BF PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14CE DUP6 DUP3 DUP7 ADD PUSH2 0x13FF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14DF DUP6 DUP3 DUP7 ADD PUSH2 0x1494 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14FF JUMPI PUSH2 0x14FE PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x150D DUP5 DUP3 DUP6 ADD PUSH2 0x1494 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x151F DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP2 EQ PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x153C DUP2 PUSH2 0x1516 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1558 JUMPI PUSH2 0x1557 PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1566 DUP5 DUP3 DUP6 ADD PUSH2 0x152D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1578 DUP2 PUSH2 0x146B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1593 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x156F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15AE PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x131A JUMP JUMPDEST PUSH2 0x15BB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x131A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15D7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x156F JUMP JUMPDEST PUSH2 0x15E4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x131A 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 0x1625 DUP3 PUSH2 0x1308 JUMP JUMPDEST SWAP2 POP PUSH2 0x1630 DUP4 PUSH2 0x1308 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x164E JUMPI PUSH2 0x164D PUSH2 0x15EB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1669 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x156F JUMP JUMPDEST PUSH2 0x1676 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1441 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16AF PUSH2 0x16AA PUSH2 0x16A5 DUP5 PUSH2 0x167D JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x1687 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16BF DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D8 DUP2 PUSH2 0x16C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x1700 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16CF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1712 DUP3 PUSH2 0x1308 JUMP JUMPDEST SWAP2 POP PUSH2 0x171D DUP4 PUSH2 0x1308 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x173B JUMPI PUSH2 0x173A PUSH2 0x15EB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 DUP14 0xC2 PUSH30 0x37232BD451D6A0DB84BF9E7C89D75FD4721F17FC992D67D97C2D740A6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"490:1303:32:-:0;;;1518:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1672:12;1686:19;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1762:21:32::1;1717:67;;;;;;;;::::0;::::1;1518:273:::0;;;490:1303;;5509:370:9;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;88:117:44:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:97::-;881:7;921:14;914:5;910:26;899:37;;845:97;;;:::o;948:120::-;1020:23;1037:5;1020:23;:::i;:::-;1013:5;1010:34;1000:62;;1058:1;1055;1048:12;1000:62;948:120;:::o;1074:141::-;1130:5;1161:6;1155:13;1146:22;;1177:32;1203:5;1177:32;:::i;:::-;1074:141;;;;:::o;1221:661::-;1308:6;1316;1324;1373:2;1361:9;1352:7;1348:23;1344:32;1341:119;;;1379:79;;:::i;:::-;1341:119;1499:1;1524:64;1580:7;1571:6;1560:9;1556:22;1524:64;:::i;:::-;1514:74;;1470:128;1637:2;1663:63;1718:7;1709:6;1698:9;1694:22;1663:63;:::i;:::-;1653:73;;1608:128;1775:2;1801:64;1857:7;1848:6;1837:9;1833:22;1801:64;:::i;:::-;1791:74;;1746:129;1221:661;;;;;:::o;1888:118::-;1975:24;1993:5;1975:24;:::i;:::-;1970:3;1963:37;1888:118;;:::o;2012:222::-;2105:4;2143:2;2132:9;2128:18;2120:26;;2156:71;2224:1;2213:9;2209:17;2200:6;2156:71;:::i;:::-;2012:222;;;;:::o;490:1303:32:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_1222":{"entryPoint":1736,"id":1222,"parameterSlots":0,"returnSlots":0},"@_acceptDefaultAdminTransfer_2244":{"entryPoint":2755,"id":2244,"parameterSlots":0,"returnSlots":0},"@_beginDefaultAdminTransfer_2152":{"entryPoint":2521,"id":2152,"parameterSlots":1,"returnSlots":0},"@_cancelDefaultAdminTransfer_2176":{"entryPoint":2996,"id":2176,"parameterSlots":0,"returnSlots":0},"@_changeDefaultAdminDelay_2287":{"entryPoint":2644,"id":2287,"parameterSlots":1,"returnSlots":0},"@_checkRole_1286":{"entryPoint":2290,"id":1286,"parameterSlots":1,"returnSlots":0},"@_checkRole_1307":{"entryPoint":3115,"id":1307,"parameterSlots":2,"returnSlots":0},"@_delayChangeWait_2339":{"entryPoint":4041,"id":2339,"parameterSlots":1,"returnSlots":1},"@_grantRole_1449":{"entryPoint":4136,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":3436,"id":1970,"parameterSlots":2,"returnSlots":1},"@_hasSchedulePassed_2435":{"entryPoint":2378,"id":2435,"parameterSlots":1,"returnSlots":1},"@_isScheduleSet_2421":{"entryPoint":2357,"id":2421,"parameterSlots":1,"returnSlots":1},"@_msgSender_3399":{"entryPoint":2747,"id":3399,"parameterSlots":0,"returnSlots":1},"@_revokeRole_1487":{"entryPoint":4377,"id":1487,"parameterSlots":2,"returnSlots":1},"@_revokeRole_2001":{"entryPoint":3641,"id":2001,"parameterSlots":2,"returnSlots":1},"@_rollbackDefaultAdminDelay_2308":{"entryPoint":2310,"id":2308,"parameterSlots":0,"returnSlots":0},"@_setPendingDefaultAdmin_2369":{"entryPoint":3862,"id":2369,"parameterSlots":2,"returnSlots":0},"@_setPendingDelay_2408":{"entryPoint":3196,"id":2408,"parameterSlots":2,"returnSlots":0},"@acceptDefaultAdminTransfer_2200":{"entryPoint":1853,"id":2200,"parameterSlots":0,"returnSlots":0},"@beginDefaultAdminTransfer_2124":{"entryPoint":1425,"id":2124,"parameterSlots":1,"returnSlots":0},"@cancelDefaultAdminTransfer_2163":{"entryPoint":2144,"id":2163,"parameterSlots":0,"returnSlots":0},"@changeDefaultAdminDelay_2258":{"entryPoint":1451,"id":2258,"parameterSlots":1,"returnSlots":0},"@crossDomainMessanger_7240":{"entryPoint":983,"id":7240,"parameterSlots":0,"returnSlots":0},"@defaultAdminDelayIncreaseWait_2110":{"entryPoint":972,"id":2110,"parameterSlots":0,"returnSlots":1},"@defaultAdminDelay_2071":{"entryPoint":1743,"id":2071,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":1477,"id":2035,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_1321":{"entryPoint":1043,"id":1321,"parameterSlots":1,"returnSlots":1},"@grantRole_1340":{"entryPoint":2323,"id":1340,"parameterSlots":2,"returnSlots":0},"@grantRole_1843":{"entryPoint":1074,"id":1843,"parameterSlots":2,"returnSlots":0},"@hasRole_1273":{"entryPoint":1534,"id":1273,"parameterSlots":2,"returnSlots":1},"@min_4003":{"entryPoint":4619,"id":4003,"parameterSlots":2,"returnSlots":1},"@owner_1816":{"entryPoint":1519,"id":1816,"parameterSlots":0,"returnSlots":1},"@pendingDefaultAdminDelay_2101":{"entryPoint":1640,"id":2101,"parameterSlots":0,"returnSlots":2},"@pendingDefaultAdmin_2048":{"entryPoint":2003,"id":2048,"parameterSlots":0,"returnSlots":2},"@renounceRole_1382":{"entryPoint":2398,"id":1382,"parameterSlots":2,"returnSlots":0},"@renounceRole_1931":{"entryPoint":1148,"id":1931,"parameterSlots":2,"returnSlots":0},"@revokeRole_1359":{"entryPoint":2962,"id":1359,"parameterSlots":2,"returnSlots":0},"@revokeRole_1870":{"entryPoint":2070,"id":1870,"parameterSlots":2,"returnSlots":0},"@rollbackDefaultAdminDelay_2298":{"entryPoint":1019,"id":2298,"parameterSlots":0,"returnSlots":0},"@supportsInterface_1255":{"entryPoint":2168,"id":1255,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1806":{"entryPoint":850,"id":1806,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3755":{"entryPoint":3009,"id":3755,"parameterSlots":1,"returnSlots":1},"@ternary_3965":{"entryPoint":4642,"id":3965,"parameterSlots":3,"returnSlots":1},"@toUint48_6129":{"entryPoint":3772,"id":6129,"parameterSlots":1,"returnSlots":1},"@toUint_7138":{"entryPoint":4668,"id":7138,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5268,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":5119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4752,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48":{"entryPoint":5421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":5140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5289,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":4773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint48":{"entryPoint":5442,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5487,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4830,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5185,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack":{"entryPoint":5044,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack":{"entryPoint":5814,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5839,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint48_to_t_uint48_fromStack":{"entryPoint":4890,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5502,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":5716,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed":{"entryPoint":5570,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":5200,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed":{"entryPoint":5059,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":5854,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed":{"entryPoint":4905,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed":{"entryPoint":5529,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint48":{"entryPoint":5658,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint48":{"entryPoint":5895,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5227,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4818,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5086,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":4685,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_48_by_1":{"entryPoint":5757,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4932,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5829,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":4872,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":5767,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address":{"entryPoint":5026,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_48_by_1_to_t_uint8":{"entryPoint":5780,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":5008,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4974,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":4964,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5611,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4680,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5245,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":5096,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4729,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":5398,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8936:44","nodeType":"YulBlock","src":"0:8936:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"378:105:44","nodeType":"YulBlock","src":"378:105:44","statements":[{"nativeSrc":"388:89:44","nodeType":"YulAssignment","src":"388:89:44","value":{"arguments":[{"name":"value","nativeSrc":"403:5:44","nodeType":"YulIdentifier","src":"403:5:44"},{"kind":"number","nativeSrc":"410:66:44","nodeType":"YulLiteral","src":"410:66:44","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:44","nodeType":"YulIdentifier","src":"399:3:44"},"nativeSrc":"399:78:44","nodeType":"YulFunctionCall","src":"399:78:44"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:44","nodeType":"YulIdentifier","src":"388:7:44"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:44","nodeType":"YulTypedName","src":"360:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:44","nodeType":"YulTypedName","src":"370:7:44","type":""}],"src":"334:149:44"},{"body":{"nativeSrc":"531:78:44","nodeType":"YulBlock","src":"531:78:44","statements":[{"body":{"nativeSrc":"587:16:44","nodeType":"YulBlock","src":"587:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:44","nodeType":"YulLiteral","src":"596:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:44","nodeType":"YulLiteral","src":"599:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:44","nodeType":"YulIdentifier","src":"589:6:44"},"nativeSrc":"589:12:44","nodeType":"YulFunctionCall","src":"589:12:44"},"nativeSrc":"589:12:44","nodeType":"YulExpressionStatement","src":"589:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:44","nodeType":"YulIdentifier","src":"554:5:44"},{"arguments":[{"name":"value","nativeSrc":"578:5:44","nodeType":"YulIdentifier","src":"578:5:44"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:44","nodeType":"YulIdentifier","src":"561:16:44"},"nativeSrc":"561:23:44","nodeType":"YulFunctionCall","src":"561:23:44"}],"functionName":{"name":"eq","nativeSrc":"551:2:44","nodeType":"YulIdentifier","src":"551:2:44"},"nativeSrc":"551:34:44","nodeType":"YulFunctionCall","src":"551:34:44"}],"functionName":{"name":"iszero","nativeSrc":"544:6:44","nodeType":"YulIdentifier","src":"544:6:44"},"nativeSrc":"544:42:44","nodeType":"YulFunctionCall","src":"544:42:44"},"nativeSrc":"541:62:44","nodeType":"YulIf","src":"541:62:44"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:44","nodeType":"YulTypedName","src":"524:5:44","type":""}],"src":"489:120:44"},{"body":{"nativeSrc":"666:86:44","nodeType":"YulBlock","src":"666:86:44","statements":[{"nativeSrc":"676:29:44","nodeType":"YulAssignment","src":"676:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:44","nodeType":"YulIdentifier","src":"698:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:44","nodeType":"YulIdentifier","src":"685:12:44"},"nativeSrc":"685:20:44","nodeType":"YulFunctionCall","src":"685:20:44"},"variableNames":[{"name":"value","nativeSrc":"676:5:44","nodeType":"YulIdentifier","src":"676:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:44","nodeType":"YulIdentifier","src":"740:5:44"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:44","nodeType":"YulIdentifier","src":"714:25:44"},"nativeSrc":"714:32:44","nodeType":"YulFunctionCall","src":"714:32:44"},"nativeSrc":"714:32:44","nodeType":"YulExpressionStatement","src":"714:32:44"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:44","nodeType":"YulTypedName","src":"644:6:44","type":""},{"name":"end","nativeSrc":"652:3:44","nodeType":"YulTypedName","src":"652:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:44","nodeType":"YulTypedName","src":"660:5:44","type":""}],"src":"615:137:44"},{"body":{"nativeSrc":"823:262:44","nodeType":"YulBlock","src":"823:262:44","statements":[{"body":{"nativeSrc":"869:83:44","nodeType":"YulBlock","src":"869:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:44","nodeType":"YulIdentifier","src":"871:77:44"},"nativeSrc":"871:79:44","nodeType":"YulFunctionCall","src":"871:79:44"},"nativeSrc":"871:79:44","nodeType":"YulExpressionStatement","src":"871:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:44","nodeType":"YulIdentifier","src":"844:7:44"},{"name":"headStart","nativeSrc":"853:9:44","nodeType":"YulIdentifier","src":"853:9:44"}],"functionName":{"name":"sub","nativeSrc":"840:3:44","nodeType":"YulIdentifier","src":"840:3:44"},"nativeSrc":"840:23:44","nodeType":"YulFunctionCall","src":"840:23:44"},{"kind":"number","nativeSrc":"865:2:44","nodeType":"YulLiteral","src":"865:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:44","nodeType":"YulIdentifier","src":"836:3:44"},"nativeSrc":"836:32:44","nodeType":"YulFunctionCall","src":"836:32:44"},"nativeSrc":"833:119:44","nodeType":"YulIf","src":"833:119:44"},{"nativeSrc":"962:116:44","nodeType":"YulBlock","src":"962:116:44","statements":[{"nativeSrc":"977:15:44","nodeType":"YulVariableDeclaration","src":"977:15:44","value":{"kind":"number","nativeSrc":"991:1:44","nodeType":"YulLiteral","src":"991:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:44","nodeType":"YulTypedName","src":"981:6:44","type":""}]},{"nativeSrc":"1006:62:44","nodeType":"YulAssignment","src":"1006:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:44","nodeType":"YulIdentifier","src":"1040:9:44"},{"name":"offset","nativeSrc":"1051:6:44","nodeType":"YulIdentifier","src":"1051:6:44"}],"functionName":{"name":"add","nativeSrc":"1036:3:44","nodeType":"YulIdentifier","src":"1036:3:44"},"nativeSrc":"1036:22:44","nodeType":"YulFunctionCall","src":"1036:22:44"},{"name":"dataEnd","nativeSrc":"1060:7:44","nodeType":"YulIdentifier","src":"1060:7:44"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:44","nodeType":"YulIdentifier","src":"1016:19:44"},"nativeSrc":"1016:52:44","nodeType":"YulFunctionCall","src":"1016:52:44"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:44","nodeType":"YulIdentifier","src":"1006:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:44","nodeType":"YulTypedName","src":"793:9:44","type":""},{"name":"dataEnd","nativeSrc":"804:7:44","nodeType":"YulTypedName","src":"804:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:44","nodeType":"YulTypedName","src":"816:6:44","type":""}],"src":"758:327:44"},{"body":{"nativeSrc":"1133:48:44","nodeType":"YulBlock","src":"1133:48:44","statements":[{"nativeSrc":"1143:32:44","nodeType":"YulAssignment","src":"1143:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:44","nodeType":"YulIdentifier","src":"1168:5:44"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"},"nativeSrc":"1161:13:44","nodeType":"YulFunctionCall","src":"1161:13:44"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:44","nodeType":"YulIdentifier","src":"1154:6:44"},"nativeSrc":"1154:21:44","nodeType":"YulFunctionCall","src":"1154:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:44","nodeType":"YulIdentifier","src":"1143:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:44","nodeType":"YulTypedName","src":"1115:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:44","nodeType":"YulTypedName","src":"1125:7:44","type":""}],"src":"1091:90:44"},{"body":{"nativeSrc":"1246:50:44","nodeType":"YulBlock","src":"1246:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:44","nodeType":"YulIdentifier","src":"1263:3:44"},{"arguments":[{"name":"value","nativeSrc":"1283:5:44","nodeType":"YulIdentifier","src":"1283:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:44","nodeType":"YulIdentifier","src":"1268:14:44"},"nativeSrc":"1268:21:44","nodeType":"YulFunctionCall","src":"1268:21:44"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:44","nodeType":"YulIdentifier","src":"1256:6:44"},"nativeSrc":"1256:34:44","nodeType":"YulFunctionCall","src":"1256:34:44"},"nativeSrc":"1256:34:44","nodeType":"YulExpressionStatement","src":"1256:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:44","nodeType":"YulTypedName","src":"1234:5:44","type":""},{"name":"pos","nativeSrc":"1241:3:44","nodeType":"YulTypedName","src":"1241:3:44","type":""}],"src":"1187:109:44"},{"body":{"nativeSrc":"1394:118:44","nodeType":"YulBlock","src":"1394:118:44","statements":[{"nativeSrc":"1404:26:44","nodeType":"YulAssignment","src":"1404:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:44","nodeType":"YulIdentifier","src":"1416:9:44"},{"kind":"number","nativeSrc":"1427:2:44","nodeType":"YulLiteral","src":"1427:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:44","nodeType":"YulIdentifier","src":"1412:3:44"},"nativeSrc":"1412:18:44","nodeType":"YulFunctionCall","src":"1412:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:44","nodeType":"YulIdentifier","src":"1404:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:44","nodeType":"YulIdentifier","src":"1478:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:44","nodeType":"YulIdentifier","src":"1491:9:44"},{"kind":"number","nativeSrc":"1502:1:44","nodeType":"YulLiteral","src":"1502:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:44","nodeType":"YulIdentifier","src":"1487:3:44"},"nativeSrc":"1487:17:44","nodeType":"YulFunctionCall","src":"1487:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:44","nodeType":"YulIdentifier","src":"1440:37:44"},"nativeSrc":"1440:65:44","nodeType":"YulFunctionCall","src":"1440:65:44"},"nativeSrc":"1440:65:44","nodeType":"YulExpressionStatement","src":"1440:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:44","nodeType":"YulTypedName","src":"1366:9:44","type":""},{"name":"value0","nativeSrc":"1378:6:44","nodeType":"YulTypedName","src":"1378:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:44","nodeType":"YulTypedName","src":"1389:4:44","type":""}],"src":"1302:210:44"},{"body":{"nativeSrc":"1562:53:44","nodeType":"YulBlock","src":"1562:53:44","statements":[{"nativeSrc":"1572:37:44","nodeType":"YulAssignment","src":"1572:37:44","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:44","nodeType":"YulIdentifier","src":"1587:5:44"},{"kind":"number","nativeSrc":"1594:14:44","nodeType":"YulLiteral","src":"1594:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:44","nodeType":"YulIdentifier","src":"1583:3:44"},"nativeSrc":"1583:26:44","nodeType":"YulFunctionCall","src":"1583:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:44","nodeType":"YulIdentifier","src":"1572:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"1518:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:44","nodeType":"YulTypedName","src":"1544:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:44","nodeType":"YulTypedName","src":"1554:7:44","type":""}],"src":"1518:97:44"},{"body":{"nativeSrc":"1684:52:44","nodeType":"YulBlock","src":"1684:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1701:3:44","nodeType":"YulIdentifier","src":"1701:3:44"},{"arguments":[{"name":"value","nativeSrc":"1723:5:44","nodeType":"YulIdentifier","src":"1723:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1706:16:44","nodeType":"YulIdentifier","src":"1706:16:44"},"nativeSrc":"1706:23:44","nodeType":"YulFunctionCall","src":"1706:23:44"}],"functionName":{"name":"mstore","nativeSrc":"1694:6:44","nodeType":"YulIdentifier","src":"1694:6:44"},"nativeSrc":"1694:36:44","nodeType":"YulFunctionCall","src":"1694:36:44"},"nativeSrc":"1694:36:44","nodeType":"YulExpressionStatement","src":"1694:36:44"}]},"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1621:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1672:5:44","nodeType":"YulTypedName","src":"1672:5:44","type":""},{"name":"pos","nativeSrc":"1679:3:44","nodeType":"YulTypedName","src":"1679:3:44","type":""}],"src":"1621:115:44"},{"body":{"nativeSrc":"1838:122:44","nodeType":"YulBlock","src":"1838:122:44","statements":[{"nativeSrc":"1848:26:44","nodeType":"YulAssignment","src":"1848:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1860:9:44","nodeType":"YulIdentifier","src":"1860:9:44"},{"kind":"number","nativeSrc":"1871:2:44","nodeType":"YulLiteral","src":"1871:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1856:3:44","nodeType":"YulIdentifier","src":"1856:3:44"},"nativeSrc":"1856:18:44","nodeType":"YulFunctionCall","src":"1856:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1848:4:44","nodeType":"YulIdentifier","src":"1848:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1926:6:44","nodeType":"YulIdentifier","src":"1926:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1939:9:44","nodeType":"YulIdentifier","src":"1939:9:44"},{"kind":"number","nativeSrc":"1950:1:44","nodeType":"YulLiteral","src":"1950:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1935:3:44","nodeType":"YulIdentifier","src":"1935:3:44"},"nativeSrc":"1935:17:44","nodeType":"YulFunctionCall","src":"1935:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1884:41:44","nodeType":"YulIdentifier","src":"1884:41:44"},"nativeSrc":"1884:69:44","nodeType":"YulFunctionCall","src":"1884:69:44"},"nativeSrc":"1884:69:44","nodeType":"YulExpressionStatement","src":"1884:69:44"}]},"name":"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed","nativeSrc":"1742:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1810:9:44","nodeType":"YulTypedName","src":"1810:9:44","type":""},{"name":"value0","nativeSrc":"1822:6:44","nodeType":"YulTypedName","src":"1822:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1833:4:44","nodeType":"YulTypedName","src":"1833:4:44","type":""}],"src":"1742:218:44"},{"body":{"nativeSrc":"2011:81:44","nodeType":"YulBlock","src":"2011:81:44","statements":[{"nativeSrc":"2021:65:44","nodeType":"YulAssignment","src":"2021:65:44","value":{"arguments":[{"name":"value","nativeSrc":"2036:5:44","nodeType":"YulIdentifier","src":"2036:5:44"},{"kind":"number","nativeSrc":"2043:42:44","nodeType":"YulLiteral","src":"2043:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2032:3:44","nodeType":"YulIdentifier","src":"2032:3:44"},"nativeSrc":"2032:54:44","nodeType":"YulFunctionCall","src":"2032:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2021:7:44","nodeType":"YulIdentifier","src":"2021:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1966:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulTypedName","src":"1993:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2003:7:44","nodeType":"YulTypedName","src":"2003:7:44","type":""}],"src":"1966:126:44"},{"body":{"nativeSrc":"2130:28:44","nodeType":"YulBlock","src":"2130:28:44","statements":[{"nativeSrc":"2140:12:44","nodeType":"YulAssignment","src":"2140:12:44","value":{"name":"value","nativeSrc":"2147:5:44","nodeType":"YulIdentifier","src":"2147:5:44"},"variableNames":[{"name":"ret","nativeSrc":"2140:3:44","nodeType":"YulIdentifier","src":"2140:3:44"}]}]},"name":"identity","nativeSrc":"2098:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2116:5:44","nodeType":"YulTypedName","src":"2116:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2126:3:44","nodeType":"YulTypedName","src":"2126:3:44","type":""}],"src":"2098:60:44"},{"body":{"nativeSrc":"2224:82:44","nodeType":"YulBlock","src":"2224:82:44","statements":[{"nativeSrc":"2234:66:44","nodeType":"YulAssignment","src":"2234:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2292:5:44","nodeType":"YulIdentifier","src":"2292:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2274:17:44","nodeType":"YulIdentifier","src":"2274:17:44"},"nativeSrc":"2274:24:44","nodeType":"YulFunctionCall","src":"2274:24:44"}],"functionName":{"name":"identity","nativeSrc":"2265:8:44","nodeType":"YulIdentifier","src":"2265:8:44"},"nativeSrc":"2265:34:44","nodeType":"YulFunctionCall","src":"2265:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2247:17:44","nodeType":"YulIdentifier","src":"2247:17:44"},"nativeSrc":"2247:53:44","nodeType":"YulFunctionCall","src":"2247:53:44"},"variableNames":[{"name":"converted","nativeSrc":"2234:9:44","nodeType":"YulIdentifier","src":"2234:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2164:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2204:5:44","nodeType":"YulTypedName","src":"2204:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2214:9:44","nodeType":"YulTypedName","src":"2214:9:44","type":""}],"src":"2164:142:44"},{"body":{"nativeSrc":"2372:66:44","nodeType":"YulBlock","src":"2372:66:44","statements":[{"nativeSrc":"2382:50:44","nodeType":"YulAssignment","src":"2382:50:44","value":{"arguments":[{"name":"value","nativeSrc":"2426:5:44","nodeType":"YulIdentifier","src":"2426:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2395:30:44","nodeType":"YulIdentifier","src":"2395:30:44"},"nativeSrc":"2395:37:44","nodeType":"YulFunctionCall","src":"2395:37:44"},"variableNames":[{"name":"converted","nativeSrc":"2382:9:44","nodeType":"YulIdentifier","src":"2382:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2312:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2352:5:44","nodeType":"YulTypedName","src":"2352:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2362:9:44","nodeType":"YulTypedName","src":"2362:9:44","type":""}],"src":"2312:126:44"},{"body":{"nativeSrc":"2534:66:44","nodeType":"YulBlock","src":"2534:66:44","statements":[{"nativeSrc":"2544:50:44","nodeType":"YulAssignment","src":"2544:50:44","value":{"arguments":[{"name":"value","nativeSrc":"2588:5:44","nodeType":"YulIdentifier","src":"2588:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2557:30:44","nodeType":"YulIdentifier","src":"2557:30:44"},"nativeSrc":"2557:37:44","nodeType":"YulFunctionCall","src":"2557:37:44"},"variableNames":[{"name":"converted","nativeSrc":"2544:9:44","nodeType":"YulIdentifier","src":"2544:9:44"}]}]},"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"2444:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2514:5:44","nodeType":"YulTypedName","src":"2514:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2524:9:44","nodeType":"YulTypedName","src":"2524:9:44","type":""}],"src":"2444:156:44"},{"body":{"nativeSrc":"2701:96:44","nodeType":"YulBlock","src":"2701:96:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2718:3:44","nodeType":"YulIdentifier","src":"2718:3:44"},{"arguments":[{"name":"value","nativeSrc":"2784:5:44","nodeType":"YulIdentifier","src":"2784:5:44"}],"functionName":{"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"2723:60:44","nodeType":"YulIdentifier","src":"2723:60:44"},"nativeSrc":"2723:67:44","nodeType":"YulFunctionCall","src":"2723:67:44"}],"functionName":{"name":"mstore","nativeSrc":"2711:6:44","nodeType":"YulIdentifier","src":"2711:6:44"},"nativeSrc":"2711:80:44","nodeType":"YulFunctionCall","src":"2711:80:44"},"nativeSrc":"2711:80:44","nodeType":"YulExpressionStatement","src":"2711:80:44"}]},"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"2606:191:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2689:5:44","nodeType":"YulTypedName","src":"2689:5:44","type":""},{"name":"pos","nativeSrc":"2696:3:44","nodeType":"YulTypedName","src":"2696:3:44","type":""}],"src":"2606:191:44"},{"body":{"nativeSrc":"2931:154:44","nodeType":"YulBlock","src":"2931:154:44","statements":[{"nativeSrc":"2941:26:44","nodeType":"YulAssignment","src":"2941:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2953:9:44","nodeType":"YulIdentifier","src":"2953:9:44"},{"kind":"number","nativeSrc":"2964:2:44","nodeType":"YulLiteral","src":"2964:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2949:3:44","nodeType":"YulIdentifier","src":"2949:3:44"},"nativeSrc":"2949:18:44","nodeType":"YulFunctionCall","src":"2949:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2941:4:44","nodeType":"YulIdentifier","src":"2941:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3051:6:44","nodeType":"YulIdentifier","src":"3051:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3064:9:44","nodeType":"YulIdentifier","src":"3064:9:44"},{"kind":"number","nativeSrc":"3075:1:44","nodeType":"YulLiteral","src":"3075:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3060:3:44","nodeType":"YulIdentifier","src":"3060:3:44"},"nativeSrc":"3060:17:44","nodeType":"YulFunctionCall","src":"3060:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"2977:73:44","nodeType":"YulIdentifier","src":"2977:73:44"},"nativeSrc":"2977:101:44","nodeType":"YulFunctionCall","src":"2977:101:44"},"nativeSrc":"2977:101:44","nodeType":"YulExpressionStatement","src":"2977:101:44"}]},"name":"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed","nativeSrc":"2803:282:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2903:9:44","nodeType":"YulTypedName","src":"2903:9:44","type":""},{"name":"value0","nativeSrc":"2915:6:44","nodeType":"YulTypedName","src":"2915:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2926:4:44","nodeType":"YulTypedName","src":"2926:4:44","type":""}],"src":"2803:282:44"},{"body":{"nativeSrc":"3136:32:44","nodeType":"YulBlock","src":"3136:32:44","statements":[{"nativeSrc":"3146:16:44","nodeType":"YulAssignment","src":"3146:16:44","value":{"name":"value","nativeSrc":"3157:5:44","nodeType":"YulIdentifier","src":"3157:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3146:7:44","nodeType":"YulIdentifier","src":"3146:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"3091:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3118:5:44","nodeType":"YulTypedName","src":"3118:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3128:7:44","nodeType":"YulTypedName","src":"3128:7:44","type":""}],"src":"3091:77:44"},{"body":{"nativeSrc":"3217:79:44","nodeType":"YulBlock","src":"3217:79:44","statements":[{"body":{"nativeSrc":"3274:16:44","nodeType":"YulBlock","src":"3274:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3283:1:44","nodeType":"YulLiteral","src":"3283:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3286:1:44","nodeType":"YulLiteral","src":"3286:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3276:6:44","nodeType":"YulIdentifier","src":"3276:6:44"},"nativeSrc":"3276:12:44","nodeType":"YulFunctionCall","src":"3276:12:44"},"nativeSrc":"3276:12:44","nodeType":"YulExpressionStatement","src":"3276:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3240:5:44","nodeType":"YulIdentifier","src":"3240:5:44"},{"arguments":[{"name":"value","nativeSrc":"3265:5:44","nodeType":"YulIdentifier","src":"3265:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"3247:17:44","nodeType":"YulIdentifier","src":"3247:17:44"},"nativeSrc":"3247:24:44","nodeType":"YulFunctionCall","src":"3247:24:44"}],"functionName":{"name":"eq","nativeSrc":"3237:2:44","nodeType":"YulIdentifier","src":"3237:2:44"},"nativeSrc":"3237:35:44","nodeType":"YulFunctionCall","src":"3237:35:44"}],"functionName":{"name":"iszero","nativeSrc":"3230:6:44","nodeType":"YulIdentifier","src":"3230:6:44"},"nativeSrc":"3230:43:44","nodeType":"YulFunctionCall","src":"3230:43:44"},"nativeSrc":"3227:63:44","nodeType":"YulIf","src":"3227:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"3174:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3210:5:44","nodeType":"YulTypedName","src":"3210:5:44","type":""}],"src":"3174:122:44"},{"body":{"nativeSrc":"3354:87:44","nodeType":"YulBlock","src":"3354:87:44","statements":[{"nativeSrc":"3364:29:44","nodeType":"YulAssignment","src":"3364:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3386:6:44","nodeType":"YulIdentifier","src":"3386:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3373:12:44","nodeType":"YulIdentifier","src":"3373:12:44"},"nativeSrc":"3373:20:44","nodeType":"YulFunctionCall","src":"3373:20:44"},"variableNames":[{"name":"value","nativeSrc":"3364:5:44","nodeType":"YulIdentifier","src":"3364:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3429:5:44","nodeType":"YulIdentifier","src":"3429:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"3402:26:44","nodeType":"YulIdentifier","src":"3402:26:44"},"nativeSrc":"3402:33:44","nodeType":"YulFunctionCall","src":"3402:33:44"},"nativeSrc":"3402:33:44","nodeType":"YulExpressionStatement","src":"3402:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"3302:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3332:6:44","nodeType":"YulTypedName","src":"3332:6:44","type":""},{"name":"end","nativeSrc":"3340:3:44","nodeType":"YulTypedName","src":"3340:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3348:5:44","nodeType":"YulTypedName","src":"3348:5:44","type":""}],"src":"3302:139:44"},{"body":{"nativeSrc":"3513:263:44","nodeType":"YulBlock","src":"3513:263:44","statements":[{"body":{"nativeSrc":"3559:83:44","nodeType":"YulBlock","src":"3559:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3561:77:44","nodeType":"YulIdentifier","src":"3561:77:44"},"nativeSrc":"3561:79:44","nodeType":"YulFunctionCall","src":"3561:79:44"},"nativeSrc":"3561:79:44","nodeType":"YulExpressionStatement","src":"3561:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3534:7:44","nodeType":"YulIdentifier","src":"3534:7:44"},{"name":"headStart","nativeSrc":"3543:9:44","nodeType":"YulIdentifier","src":"3543:9:44"}],"functionName":{"name":"sub","nativeSrc":"3530:3:44","nodeType":"YulIdentifier","src":"3530:3:44"},"nativeSrc":"3530:23:44","nodeType":"YulFunctionCall","src":"3530:23:44"},{"kind":"number","nativeSrc":"3555:2:44","nodeType":"YulLiteral","src":"3555:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3526:3:44","nodeType":"YulIdentifier","src":"3526:3:44"},"nativeSrc":"3526:32:44","nodeType":"YulFunctionCall","src":"3526:32:44"},"nativeSrc":"3523:119:44","nodeType":"YulIf","src":"3523:119:44"},{"nativeSrc":"3652:117:44","nodeType":"YulBlock","src":"3652:117:44","statements":[{"nativeSrc":"3667:15:44","nodeType":"YulVariableDeclaration","src":"3667:15:44","value":{"kind":"number","nativeSrc":"3681:1:44","nodeType":"YulLiteral","src":"3681:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3671:6:44","nodeType":"YulTypedName","src":"3671:6:44","type":""}]},{"nativeSrc":"3696:63:44","nodeType":"YulAssignment","src":"3696:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3731:9:44","nodeType":"YulIdentifier","src":"3731:9:44"},{"name":"offset","nativeSrc":"3742:6:44","nodeType":"YulIdentifier","src":"3742:6:44"}],"functionName":{"name":"add","nativeSrc":"3727:3:44","nodeType":"YulIdentifier","src":"3727:3:44"},"nativeSrc":"3727:22:44","nodeType":"YulFunctionCall","src":"3727:22:44"},{"name":"dataEnd","nativeSrc":"3751:7:44","nodeType":"YulIdentifier","src":"3751:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"3706:20:44","nodeType":"YulIdentifier","src":"3706:20:44"},"nativeSrc":"3706:53:44","nodeType":"YulFunctionCall","src":"3706:53:44"},"variableNames":[{"name":"value0","nativeSrc":"3696:6:44","nodeType":"YulIdentifier","src":"3696:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3447:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3483:9:44","nodeType":"YulTypedName","src":"3483:9:44","type":""},{"name":"dataEnd","nativeSrc":"3494:7:44","nodeType":"YulTypedName","src":"3494:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3506:6:44","nodeType":"YulTypedName","src":"3506:6:44","type":""}],"src":"3447:329:44"},{"body":{"nativeSrc":"3847:53:44","nodeType":"YulBlock","src":"3847:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3864:3:44","nodeType":"YulIdentifier","src":"3864:3:44"},{"arguments":[{"name":"value","nativeSrc":"3887:5:44","nodeType":"YulIdentifier","src":"3887:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"3869:17:44","nodeType":"YulIdentifier","src":"3869:17:44"},"nativeSrc":"3869:24:44","nodeType":"YulFunctionCall","src":"3869:24:44"}],"functionName":{"name":"mstore","nativeSrc":"3857:6:44","nodeType":"YulIdentifier","src":"3857:6:44"},"nativeSrc":"3857:37:44","nodeType":"YulFunctionCall","src":"3857:37:44"},"nativeSrc":"3857:37:44","nodeType":"YulExpressionStatement","src":"3857:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"3782:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3835:5:44","nodeType":"YulTypedName","src":"3835:5:44","type":""},{"name":"pos","nativeSrc":"3842:3:44","nodeType":"YulTypedName","src":"3842:3:44","type":""}],"src":"3782:118:44"},{"body":{"nativeSrc":"4004:124:44","nodeType":"YulBlock","src":"4004:124:44","statements":[{"nativeSrc":"4014:26:44","nodeType":"YulAssignment","src":"4014:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4026:9:44","nodeType":"YulIdentifier","src":"4026:9:44"},{"kind":"number","nativeSrc":"4037:2:44","nodeType":"YulLiteral","src":"4037:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4022:3:44","nodeType":"YulIdentifier","src":"4022:3:44"},"nativeSrc":"4022:18:44","nodeType":"YulFunctionCall","src":"4022:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4014:4:44","nodeType":"YulIdentifier","src":"4014:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4094:6:44","nodeType":"YulIdentifier","src":"4094:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4107:9:44","nodeType":"YulIdentifier","src":"4107:9:44"},{"kind":"number","nativeSrc":"4118:1:44","nodeType":"YulLiteral","src":"4118:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4103:3:44","nodeType":"YulIdentifier","src":"4103:3:44"},"nativeSrc":"4103:17:44","nodeType":"YulFunctionCall","src":"4103:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4050:43:44","nodeType":"YulIdentifier","src":"4050:43:44"},"nativeSrc":"4050:71:44","nodeType":"YulFunctionCall","src":"4050:71:44"},"nativeSrc":"4050:71:44","nodeType":"YulExpressionStatement","src":"4050:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"3906:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3976:9:44","nodeType":"YulTypedName","src":"3976:9:44","type":""},{"name":"value0","nativeSrc":"3988:6:44","nodeType":"YulTypedName","src":"3988:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3999:4:44","nodeType":"YulTypedName","src":"3999:4:44","type":""}],"src":"3906:222:44"},{"body":{"nativeSrc":"4179:51:44","nodeType":"YulBlock","src":"4179:51:44","statements":[{"nativeSrc":"4189:35:44","nodeType":"YulAssignment","src":"4189:35:44","value":{"arguments":[{"name":"value","nativeSrc":"4218:5:44","nodeType":"YulIdentifier","src":"4218:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4200:17:44","nodeType":"YulIdentifier","src":"4200:17:44"},"nativeSrc":"4200:24:44","nodeType":"YulFunctionCall","src":"4200:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"4189:7:44","nodeType":"YulIdentifier","src":"4189:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"4134:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4161:5:44","nodeType":"YulTypedName","src":"4161:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4171:7:44","nodeType":"YulTypedName","src":"4171:7:44","type":""}],"src":"4134:96:44"},{"body":{"nativeSrc":"4279:79:44","nodeType":"YulBlock","src":"4279:79:44","statements":[{"body":{"nativeSrc":"4336:16:44","nodeType":"YulBlock","src":"4336:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4345:1:44","nodeType":"YulLiteral","src":"4345:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"4348:1:44","nodeType":"YulLiteral","src":"4348:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4338:6:44","nodeType":"YulIdentifier","src":"4338:6:44"},"nativeSrc":"4338:12:44","nodeType":"YulFunctionCall","src":"4338:12:44"},"nativeSrc":"4338:12:44","nodeType":"YulExpressionStatement","src":"4338:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4302:5:44","nodeType":"YulIdentifier","src":"4302:5:44"},{"arguments":[{"name":"value","nativeSrc":"4327:5:44","nodeType":"YulIdentifier","src":"4327:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4309:17:44","nodeType":"YulIdentifier","src":"4309:17:44"},"nativeSrc":"4309:24:44","nodeType":"YulFunctionCall","src":"4309:24:44"}],"functionName":{"name":"eq","nativeSrc":"4299:2:44","nodeType":"YulIdentifier","src":"4299:2:44"},"nativeSrc":"4299:35:44","nodeType":"YulFunctionCall","src":"4299:35:44"}],"functionName":{"name":"iszero","nativeSrc":"4292:6:44","nodeType":"YulIdentifier","src":"4292:6:44"},"nativeSrc":"4292:43:44","nodeType":"YulFunctionCall","src":"4292:43:44"},"nativeSrc":"4289:63:44","nodeType":"YulIf","src":"4289:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"4236:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4272:5:44","nodeType":"YulTypedName","src":"4272:5:44","type":""}],"src":"4236:122:44"},{"body":{"nativeSrc":"4416:87:44","nodeType":"YulBlock","src":"4416:87:44","statements":[{"nativeSrc":"4426:29:44","nodeType":"YulAssignment","src":"4426:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"4448:6:44","nodeType":"YulIdentifier","src":"4448:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"4435:12:44","nodeType":"YulIdentifier","src":"4435:12:44"},"nativeSrc":"4435:20:44","nodeType":"YulFunctionCall","src":"4435:20:44"},"variableNames":[{"name":"value","nativeSrc":"4426:5:44","nodeType":"YulIdentifier","src":"4426:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4491:5:44","nodeType":"YulIdentifier","src":"4491:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4464:26:44","nodeType":"YulIdentifier","src":"4464:26:44"},"nativeSrc":"4464:33:44","nodeType":"YulFunctionCall","src":"4464:33:44"},"nativeSrc":"4464:33:44","nodeType":"YulExpressionStatement","src":"4464:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"4364:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4394:6:44","nodeType":"YulTypedName","src":"4394:6:44","type":""},{"name":"end","nativeSrc":"4402:3:44","nodeType":"YulTypedName","src":"4402:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4410:5:44","nodeType":"YulTypedName","src":"4410:5:44","type":""}],"src":"4364:139:44"},{"body":{"nativeSrc":"4592:391:44","nodeType":"YulBlock","src":"4592:391:44","statements":[{"body":{"nativeSrc":"4638:83:44","nodeType":"YulBlock","src":"4638:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4640:77:44","nodeType":"YulIdentifier","src":"4640:77:44"},"nativeSrc":"4640:79:44","nodeType":"YulFunctionCall","src":"4640:79:44"},"nativeSrc":"4640:79:44","nodeType":"YulExpressionStatement","src":"4640:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4613:7:44","nodeType":"YulIdentifier","src":"4613:7:44"},{"name":"headStart","nativeSrc":"4622:9:44","nodeType":"YulIdentifier","src":"4622:9:44"}],"functionName":{"name":"sub","nativeSrc":"4609:3:44","nodeType":"YulIdentifier","src":"4609:3:44"},"nativeSrc":"4609:23:44","nodeType":"YulFunctionCall","src":"4609:23:44"},{"kind":"number","nativeSrc":"4634:2:44","nodeType":"YulLiteral","src":"4634:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4605:3:44","nodeType":"YulIdentifier","src":"4605:3:44"},"nativeSrc":"4605:32:44","nodeType":"YulFunctionCall","src":"4605:32:44"},"nativeSrc":"4602:119:44","nodeType":"YulIf","src":"4602:119:44"},{"nativeSrc":"4731:117:44","nodeType":"YulBlock","src":"4731:117:44","statements":[{"nativeSrc":"4746:15:44","nodeType":"YulVariableDeclaration","src":"4746:15:44","value":{"kind":"number","nativeSrc":"4760:1:44","nodeType":"YulLiteral","src":"4760:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4750:6:44","nodeType":"YulTypedName","src":"4750:6:44","type":""}]},{"nativeSrc":"4775:63:44","nodeType":"YulAssignment","src":"4775:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4810:9:44","nodeType":"YulIdentifier","src":"4810:9:44"},{"name":"offset","nativeSrc":"4821:6:44","nodeType":"YulIdentifier","src":"4821:6:44"}],"functionName":{"name":"add","nativeSrc":"4806:3:44","nodeType":"YulIdentifier","src":"4806:3:44"},"nativeSrc":"4806:22:44","nodeType":"YulFunctionCall","src":"4806:22:44"},{"name":"dataEnd","nativeSrc":"4830:7:44","nodeType":"YulIdentifier","src":"4830:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4785:20:44","nodeType":"YulIdentifier","src":"4785:20:44"},"nativeSrc":"4785:53:44","nodeType":"YulFunctionCall","src":"4785:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4775:6:44","nodeType":"YulIdentifier","src":"4775:6:44"}]}]},{"nativeSrc":"4858:118:44","nodeType":"YulBlock","src":"4858:118:44","statements":[{"nativeSrc":"4873:16:44","nodeType":"YulVariableDeclaration","src":"4873:16:44","value":{"kind":"number","nativeSrc":"4887:2:44","nodeType":"YulLiteral","src":"4887:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4877:6:44","nodeType":"YulTypedName","src":"4877:6:44","type":""}]},{"nativeSrc":"4903:63:44","nodeType":"YulAssignment","src":"4903:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4938:9:44","nodeType":"YulIdentifier","src":"4938:9:44"},{"name":"offset","nativeSrc":"4949:6:44","nodeType":"YulIdentifier","src":"4949:6:44"}],"functionName":{"name":"add","nativeSrc":"4934:3:44","nodeType":"YulIdentifier","src":"4934:3:44"},"nativeSrc":"4934:22:44","nodeType":"YulFunctionCall","src":"4934:22:44"},{"name":"dataEnd","nativeSrc":"4958:7:44","nodeType":"YulIdentifier","src":"4958:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4913:20:44","nodeType":"YulIdentifier","src":"4913:20:44"},"nativeSrc":"4913:53:44","nodeType":"YulFunctionCall","src":"4913:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4903:6:44","nodeType":"YulIdentifier","src":"4903:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"4509:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:44","nodeType":"YulTypedName","src":"4554:9:44","type":""},{"name":"dataEnd","nativeSrc":"4565:7:44","nodeType":"YulTypedName","src":"4565:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4577:6:44","nodeType":"YulTypedName","src":"4577:6:44","type":""},{"name":"value1","nativeSrc":"4585:6:44","nodeType":"YulTypedName","src":"4585:6:44","type":""}],"src":"4509:474:44"},{"body":{"nativeSrc":"5055:263:44","nodeType":"YulBlock","src":"5055:263:44","statements":[{"body":{"nativeSrc":"5101:83:44","nodeType":"YulBlock","src":"5101:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5103:77:44","nodeType":"YulIdentifier","src":"5103:77:44"},"nativeSrc":"5103:79:44","nodeType":"YulFunctionCall","src":"5103:79:44"},"nativeSrc":"5103:79:44","nodeType":"YulExpressionStatement","src":"5103:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5076:7:44","nodeType":"YulIdentifier","src":"5076:7:44"},{"name":"headStart","nativeSrc":"5085:9:44","nodeType":"YulIdentifier","src":"5085:9:44"}],"functionName":{"name":"sub","nativeSrc":"5072:3:44","nodeType":"YulIdentifier","src":"5072:3:44"},"nativeSrc":"5072:23:44","nodeType":"YulFunctionCall","src":"5072:23:44"},{"kind":"number","nativeSrc":"5097:2:44","nodeType":"YulLiteral","src":"5097:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5068:3:44","nodeType":"YulIdentifier","src":"5068:3:44"},"nativeSrc":"5068:32:44","nodeType":"YulFunctionCall","src":"5068:32:44"},"nativeSrc":"5065:119:44","nodeType":"YulIf","src":"5065:119:44"},{"nativeSrc":"5194:117:44","nodeType":"YulBlock","src":"5194:117:44","statements":[{"nativeSrc":"5209:15:44","nodeType":"YulVariableDeclaration","src":"5209:15:44","value":{"kind":"number","nativeSrc":"5223:1:44","nodeType":"YulLiteral","src":"5223:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5213:6:44","nodeType":"YulTypedName","src":"5213:6:44","type":""}]},{"nativeSrc":"5238:63:44","nodeType":"YulAssignment","src":"5238:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5273:9:44","nodeType":"YulIdentifier","src":"5273:9:44"},{"name":"offset","nativeSrc":"5284:6:44","nodeType":"YulIdentifier","src":"5284:6:44"}],"functionName":{"name":"add","nativeSrc":"5269:3:44","nodeType":"YulIdentifier","src":"5269:3:44"},"nativeSrc":"5269:22:44","nodeType":"YulFunctionCall","src":"5269:22:44"},{"name":"dataEnd","nativeSrc":"5293:7:44","nodeType":"YulIdentifier","src":"5293:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5248:20:44","nodeType":"YulIdentifier","src":"5248:20:44"},"nativeSrc":"5248:53:44","nodeType":"YulFunctionCall","src":"5248:53:44"},"variableNames":[{"name":"value0","nativeSrc":"5238:6:44","nodeType":"YulIdentifier","src":"5238:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4989:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5025:9:44","nodeType":"YulTypedName","src":"5025:9:44","type":""},{"name":"dataEnd","nativeSrc":"5036:7:44","nodeType":"YulTypedName","src":"5036:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5048:6:44","nodeType":"YulTypedName","src":"5048:6:44","type":""}],"src":"4989:329:44"},{"body":{"nativeSrc":"5366:78:44","nodeType":"YulBlock","src":"5366:78:44","statements":[{"body":{"nativeSrc":"5422:16:44","nodeType":"YulBlock","src":"5422:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5431:1:44","nodeType":"YulLiteral","src":"5431:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5434:1:44","nodeType":"YulLiteral","src":"5434:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5424:6:44","nodeType":"YulIdentifier","src":"5424:6:44"},"nativeSrc":"5424:12:44","nodeType":"YulFunctionCall","src":"5424:12:44"},"nativeSrc":"5424:12:44","nodeType":"YulExpressionStatement","src":"5424:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5389:5:44","nodeType":"YulIdentifier","src":"5389:5:44"},{"arguments":[{"name":"value","nativeSrc":"5413:5:44","nodeType":"YulIdentifier","src":"5413:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"5396:16:44","nodeType":"YulIdentifier","src":"5396:16:44"},"nativeSrc":"5396:23:44","nodeType":"YulFunctionCall","src":"5396:23:44"}],"functionName":{"name":"eq","nativeSrc":"5386:2:44","nodeType":"YulIdentifier","src":"5386:2:44"},"nativeSrc":"5386:34:44","nodeType":"YulFunctionCall","src":"5386:34:44"}],"functionName":{"name":"iszero","nativeSrc":"5379:6:44","nodeType":"YulIdentifier","src":"5379:6:44"},"nativeSrc":"5379:42:44","nodeType":"YulFunctionCall","src":"5379:42:44"},"nativeSrc":"5376:62:44","nodeType":"YulIf","src":"5376:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"5324:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5359:5:44","nodeType":"YulTypedName","src":"5359:5:44","type":""}],"src":"5324:120:44"},{"body":{"nativeSrc":"5501:86:44","nodeType":"YulBlock","src":"5501:86:44","statements":[{"nativeSrc":"5511:29:44","nodeType":"YulAssignment","src":"5511:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"5533:6:44","nodeType":"YulIdentifier","src":"5533:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"5520:12:44","nodeType":"YulIdentifier","src":"5520:12:44"},"nativeSrc":"5520:20:44","nodeType":"YulFunctionCall","src":"5520:20:44"},"variableNames":[{"name":"value","nativeSrc":"5511:5:44","nodeType":"YulIdentifier","src":"5511:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5575:5:44","nodeType":"YulIdentifier","src":"5575:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"5549:25:44","nodeType":"YulIdentifier","src":"5549:25:44"},"nativeSrc":"5549:32:44","nodeType":"YulFunctionCall","src":"5549:32:44"},"nativeSrc":"5549:32:44","nodeType":"YulExpressionStatement","src":"5549:32:44"}]},"name":"abi_decode_t_uint48","nativeSrc":"5450:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5479:6:44","nodeType":"YulTypedName","src":"5479:6:44","type":""},{"name":"end","nativeSrc":"5487:3:44","nodeType":"YulTypedName","src":"5487:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5495:5:44","nodeType":"YulTypedName","src":"5495:5:44","type":""}],"src":"5450:137:44"},{"body":{"nativeSrc":"5658:262:44","nodeType":"YulBlock","src":"5658:262:44","statements":[{"body":{"nativeSrc":"5704:83:44","nodeType":"YulBlock","src":"5704:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5706:77:44","nodeType":"YulIdentifier","src":"5706:77:44"},"nativeSrc":"5706:79:44","nodeType":"YulFunctionCall","src":"5706:79:44"},"nativeSrc":"5706:79:44","nodeType":"YulExpressionStatement","src":"5706:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5679:7:44","nodeType":"YulIdentifier","src":"5679:7:44"},{"name":"headStart","nativeSrc":"5688:9:44","nodeType":"YulIdentifier","src":"5688:9:44"}],"functionName":{"name":"sub","nativeSrc":"5675:3:44","nodeType":"YulIdentifier","src":"5675:3:44"},"nativeSrc":"5675:23:44","nodeType":"YulFunctionCall","src":"5675:23:44"},{"kind":"number","nativeSrc":"5700:2:44","nodeType":"YulLiteral","src":"5700:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5671:3:44","nodeType":"YulIdentifier","src":"5671:3:44"},"nativeSrc":"5671:32:44","nodeType":"YulFunctionCall","src":"5671:32:44"},"nativeSrc":"5668:119:44","nodeType":"YulIf","src":"5668:119:44"},{"nativeSrc":"5797:116:44","nodeType":"YulBlock","src":"5797:116:44","statements":[{"nativeSrc":"5812:15:44","nodeType":"YulVariableDeclaration","src":"5812:15:44","value":{"kind":"number","nativeSrc":"5826:1:44","nodeType":"YulLiteral","src":"5826:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5816:6:44","nodeType":"YulTypedName","src":"5816:6:44","type":""}]},{"nativeSrc":"5841:62:44","nodeType":"YulAssignment","src":"5841:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5875:9:44","nodeType":"YulIdentifier","src":"5875:9:44"},{"name":"offset","nativeSrc":"5886:6:44","nodeType":"YulIdentifier","src":"5886:6:44"}],"functionName":{"name":"add","nativeSrc":"5871:3:44","nodeType":"YulIdentifier","src":"5871:3:44"},"nativeSrc":"5871:22:44","nodeType":"YulFunctionCall","src":"5871:22:44"},{"name":"dataEnd","nativeSrc":"5895:7:44","nodeType":"YulIdentifier","src":"5895:7:44"}],"functionName":{"name":"abi_decode_t_uint48","nativeSrc":"5851:19:44","nodeType":"YulIdentifier","src":"5851:19:44"},"nativeSrc":"5851:52:44","nodeType":"YulFunctionCall","src":"5851:52:44"},"variableNames":[{"name":"value0","nativeSrc":"5841:6:44","nodeType":"YulIdentifier","src":"5841:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint48","nativeSrc":"5593:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5628:9:44","nodeType":"YulTypedName","src":"5628:9:44","type":""},{"name":"dataEnd","nativeSrc":"5639:7:44","nodeType":"YulTypedName","src":"5639:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5651:6:44","nodeType":"YulTypedName","src":"5651:6:44","type":""}],"src":"5593:327:44"},{"body":{"nativeSrc":"5991:53:44","nodeType":"YulBlock","src":"5991:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6008:3:44","nodeType":"YulIdentifier","src":"6008:3:44"},{"arguments":[{"name":"value","nativeSrc":"6031:5:44","nodeType":"YulIdentifier","src":"6031:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6013:17:44","nodeType":"YulIdentifier","src":"6013:17:44"},"nativeSrc":"6013:24:44","nodeType":"YulFunctionCall","src":"6013:24:44"}],"functionName":{"name":"mstore","nativeSrc":"6001:6:44","nodeType":"YulIdentifier","src":"6001:6:44"},"nativeSrc":"6001:37:44","nodeType":"YulFunctionCall","src":"6001:37:44"},"nativeSrc":"6001:37:44","nodeType":"YulExpressionStatement","src":"6001:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5926:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5979:5:44","nodeType":"YulTypedName","src":"5979:5:44","type":""},{"name":"pos","nativeSrc":"5986:3:44","nodeType":"YulTypedName","src":"5986:3:44","type":""}],"src":"5926:118:44"},{"body":{"nativeSrc":"6148:124:44","nodeType":"YulBlock","src":"6148:124:44","statements":[{"nativeSrc":"6158:26:44","nodeType":"YulAssignment","src":"6158:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6170:9:44","nodeType":"YulIdentifier","src":"6170:9:44"},{"kind":"number","nativeSrc":"6181:2:44","nodeType":"YulLiteral","src":"6181:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6166:3:44","nodeType":"YulIdentifier","src":"6166:3:44"},"nativeSrc":"6166:18:44","nodeType":"YulFunctionCall","src":"6166:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6158:4:44","nodeType":"YulIdentifier","src":"6158:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6238:6:44","nodeType":"YulIdentifier","src":"6238:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6251:9:44","nodeType":"YulIdentifier","src":"6251:9:44"},{"kind":"number","nativeSrc":"6262:1:44","nodeType":"YulLiteral","src":"6262:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6247:3:44","nodeType":"YulIdentifier","src":"6247:3:44"},"nativeSrc":"6247:17:44","nodeType":"YulFunctionCall","src":"6247:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6194:43:44","nodeType":"YulIdentifier","src":"6194:43:44"},"nativeSrc":"6194:71:44","nodeType":"YulFunctionCall","src":"6194:71:44"},"nativeSrc":"6194:71:44","nodeType":"YulExpressionStatement","src":"6194:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6050:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6120:9:44","nodeType":"YulTypedName","src":"6120:9:44","type":""},{"name":"value0","nativeSrc":"6132:6:44","nodeType":"YulTypedName","src":"6132:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6143:4:44","nodeType":"YulTypedName","src":"6143:4:44","type":""}],"src":"6050:222:44"},{"body":{"nativeSrc":"6400:202:44","nodeType":"YulBlock","src":"6400:202:44","statements":[{"nativeSrc":"6410:26:44","nodeType":"YulAssignment","src":"6410:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6422:9:44","nodeType":"YulIdentifier","src":"6422:9:44"},{"kind":"number","nativeSrc":"6433:2:44","nodeType":"YulLiteral","src":"6433:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6418:3:44","nodeType":"YulIdentifier","src":"6418:3:44"},"nativeSrc":"6418:18:44","nodeType":"YulFunctionCall","src":"6418:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6410:4:44","nodeType":"YulIdentifier","src":"6410:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6488:6:44","nodeType":"YulIdentifier","src":"6488:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6501:9:44","nodeType":"YulIdentifier","src":"6501:9:44"},{"kind":"number","nativeSrc":"6512:1:44","nodeType":"YulLiteral","src":"6512:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6497:3:44","nodeType":"YulIdentifier","src":"6497:3:44"},"nativeSrc":"6497:17:44","nodeType":"YulFunctionCall","src":"6497:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"6446:41:44","nodeType":"YulIdentifier","src":"6446:41:44"},"nativeSrc":"6446:69:44","nodeType":"YulFunctionCall","src":"6446:69:44"},"nativeSrc":"6446:69:44","nodeType":"YulExpressionStatement","src":"6446:69:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6567:6:44","nodeType":"YulIdentifier","src":"6567:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6580:9:44","nodeType":"YulIdentifier","src":"6580:9:44"},{"kind":"number","nativeSrc":"6591:2:44","nodeType":"YulLiteral","src":"6591:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6576:3:44","nodeType":"YulIdentifier","src":"6576:3:44"},"nativeSrc":"6576:18:44","nodeType":"YulFunctionCall","src":"6576:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"6525:41:44","nodeType":"YulIdentifier","src":"6525:41:44"},"nativeSrc":"6525:70:44","nodeType":"YulFunctionCall","src":"6525:70:44"},"nativeSrc":"6525:70:44","nodeType":"YulExpressionStatement","src":"6525:70:44"}]},"name":"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed","nativeSrc":"6278:324:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6364:9:44","nodeType":"YulTypedName","src":"6364:9:44","type":""},{"name":"value1","nativeSrc":"6376:6:44","nodeType":"YulTypedName","src":"6376:6:44","type":""},{"name":"value0","nativeSrc":"6384:6:44","nodeType":"YulTypedName","src":"6384:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6395:4:44","nodeType":"YulTypedName","src":"6395:4:44","type":""}],"src":"6278:324:44"},{"body":{"nativeSrc":"6732:204:44","nodeType":"YulBlock","src":"6732:204:44","statements":[{"nativeSrc":"6742:26:44","nodeType":"YulAssignment","src":"6742:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6754:9:44","nodeType":"YulIdentifier","src":"6754:9:44"},{"kind":"number","nativeSrc":"6765:2:44","nodeType":"YulLiteral","src":"6765:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6750:3:44","nodeType":"YulIdentifier","src":"6750:3:44"},"nativeSrc":"6750:18:44","nodeType":"YulFunctionCall","src":"6750:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6742:4:44","nodeType":"YulIdentifier","src":"6742:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6822:6:44","nodeType":"YulIdentifier","src":"6822:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6835:9:44","nodeType":"YulIdentifier","src":"6835:9:44"},{"kind":"number","nativeSrc":"6846:1:44","nodeType":"YulLiteral","src":"6846:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6831:3:44","nodeType":"YulIdentifier","src":"6831:3:44"},"nativeSrc":"6831:17:44","nodeType":"YulFunctionCall","src":"6831:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6778:43:44","nodeType":"YulIdentifier","src":"6778:43:44"},"nativeSrc":"6778:71:44","nodeType":"YulFunctionCall","src":"6778:71:44"},"nativeSrc":"6778:71:44","nodeType":"YulExpressionStatement","src":"6778:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6901:6:44","nodeType":"YulIdentifier","src":"6901:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6914:9:44","nodeType":"YulIdentifier","src":"6914:9:44"},{"kind":"number","nativeSrc":"6925:2:44","nodeType":"YulLiteral","src":"6925:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6910:3:44","nodeType":"YulIdentifier","src":"6910:3:44"},"nativeSrc":"6910:18:44","nodeType":"YulFunctionCall","src":"6910:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"6859:41:44","nodeType":"YulIdentifier","src":"6859:41:44"},"nativeSrc":"6859:70:44","nodeType":"YulFunctionCall","src":"6859:70:44"},"nativeSrc":"6859:70:44","nodeType":"YulExpressionStatement","src":"6859:70:44"}]},"name":"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed","nativeSrc":"6608:328:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6696:9:44","nodeType":"YulTypedName","src":"6696:9:44","type":""},{"name":"value1","nativeSrc":"6708:6:44","nodeType":"YulTypedName","src":"6708:6:44","type":""},{"name":"value0","nativeSrc":"6716:6:44","nodeType":"YulTypedName","src":"6716:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6727:4:44","nodeType":"YulTypedName","src":"6727:4:44","type":""}],"src":"6608:328:44"},{"body":{"nativeSrc":"6970:152:44","nodeType":"YulBlock","src":"6970:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6987:1:44","nodeType":"YulLiteral","src":"6987:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6990:77:44","nodeType":"YulLiteral","src":"6990:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6980:6:44","nodeType":"YulIdentifier","src":"6980:6:44"},"nativeSrc":"6980:88:44","nodeType":"YulFunctionCall","src":"6980:88:44"},"nativeSrc":"6980:88:44","nodeType":"YulExpressionStatement","src":"6980:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7084:1:44","nodeType":"YulLiteral","src":"7084:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"7087:4:44","nodeType":"YulLiteral","src":"7087:4:44","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7077:6:44","nodeType":"YulIdentifier","src":"7077:6:44"},"nativeSrc":"7077:15:44","nodeType":"YulFunctionCall","src":"7077:15:44"},"nativeSrc":"7077:15:44","nodeType":"YulExpressionStatement","src":"7077:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7108:1:44","nodeType":"YulLiteral","src":"7108:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"7111:4:44","nodeType":"YulLiteral","src":"7111:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7101:6:44","nodeType":"YulIdentifier","src":"7101:6:44"},"nativeSrc":"7101:15:44","nodeType":"YulFunctionCall","src":"7101:15:44"},"nativeSrc":"7101:15:44","nodeType":"YulExpressionStatement","src":"7101:15:44"}]},"name":"panic_error_0x11","nativeSrc":"6942:180:44","nodeType":"YulFunctionDefinition","src":"6942:180:44"},{"body":{"nativeSrc":"7171:158:44","nodeType":"YulBlock","src":"7171:158:44","statements":[{"nativeSrc":"7181:24:44","nodeType":"YulAssignment","src":"7181:24:44","value":{"arguments":[{"name":"x","nativeSrc":"7203:1:44","nodeType":"YulIdentifier","src":"7203:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"7186:16:44","nodeType":"YulIdentifier","src":"7186:16:44"},"nativeSrc":"7186:19:44","nodeType":"YulFunctionCall","src":"7186:19:44"},"variableNames":[{"name":"x","nativeSrc":"7181:1:44","nodeType":"YulIdentifier","src":"7181:1:44"}]},{"nativeSrc":"7214:24:44","nodeType":"YulAssignment","src":"7214:24:44","value":{"arguments":[{"name":"y","nativeSrc":"7236:1:44","nodeType":"YulIdentifier","src":"7236:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"7219:16:44","nodeType":"YulIdentifier","src":"7219:16:44"},"nativeSrc":"7219:19:44","nodeType":"YulFunctionCall","src":"7219:19:44"},"variableNames":[{"name":"y","nativeSrc":"7214:1:44","nodeType":"YulIdentifier","src":"7214:1:44"}]},{"nativeSrc":"7247:16:44","nodeType":"YulAssignment","src":"7247:16:44","value":{"arguments":[{"name":"x","nativeSrc":"7258:1:44","nodeType":"YulIdentifier","src":"7258:1:44"},{"name":"y","nativeSrc":"7261:1:44","nodeType":"YulIdentifier","src":"7261:1:44"}],"functionName":{"name":"add","nativeSrc":"7254:3:44","nodeType":"YulIdentifier","src":"7254:3:44"},"nativeSrc":"7254:9:44","nodeType":"YulFunctionCall","src":"7254:9:44"},"variableNames":[{"name":"sum","nativeSrc":"7247:3:44","nodeType":"YulIdentifier","src":"7247:3:44"}]},{"body":{"nativeSrc":"7300:22:44","nodeType":"YulBlock","src":"7300:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7302:16:44","nodeType":"YulIdentifier","src":"7302:16:44"},"nativeSrc":"7302:18:44","nodeType":"YulFunctionCall","src":"7302:18:44"},"nativeSrc":"7302:18:44","nodeType":"YulExpressionStatement","src":"7302:18:44"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"7279:3:44","nodeType":"YulIdentifier","src":"7279:3:44"},{"kind":"number","nativeSrc":"7284:14:44","nodeType":"YulLiteral","src":"7284:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7276:2:44","nodeType":"YulIdentifier","src":"7276:2:44"},"nativeSrc":"7276:23:44","nodeType":"YulFunctionCall","src":"7276:23:44"},"nativeSrc":"7273:49:44","nodeType":"YulIf","src":"7273:49:44"}]},"name":"checked_add_t_uint48","nativeSrc":"7128:201:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7158:1:44","nodeType":"YulTypedName","src":"7158:1:44","type":""},{"name":"y","nativeSrc":"7161:1:44","nodeType":"YulTypedName","src":"7161:1:44","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7167:3:44","nodeType":"YulTypedName","src":"7167:3:44","type":""}],"src":"7128:201:44"},{"body":{"nativeSrc":"7461:206:44","nodeType":"YulBlock","src":"7461:206:44","statements":[{"nativeSrc":"7471:26:44","nodeType":"YulAssignment","src":"7471:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7483:9:44","nodeType":"YulIdentifier","src":"7483:9:44"},{"kind":"number","nativeSrc":"7494:2:44","nodeType":"YulLiteral","src":"7494:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7479:3:44","nodeType":"YulIdentifier","src":"7479:3:44"},"nativeSrc":"7479:18:44","nodeType":"YulFunctionCall","src":"7479:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7471:4:44","nodeType":"YulIdentifier","src":"7471:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7551:6:44","nodeType":"YulIdentifier","src":"7551:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7564:9:44","nodeType":"YulIdentifier","src":"7564:9:44"},{"kind":"number","nativeSrc":"7575:1:44","nodeType":"YulLiteral","src":"7575:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7560:3:44","nodeType":"YulIdentifier","src":"7560:3:44"},"nativeSrc":"7560:17:44","nodeType":"YulFunctionCall","src":"7560:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7507:43:44","nodeType":"YulIdentifier","src":"7507:43:44"},"nativeSrc":"7507:71:44","nodeType":"YulFunctionCall","src":"7507:71:44"},"nativeSrc":"7507:71:44","nodeType":"YulExpressionStatement","src":"7507:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7632:6:44","nodeType":"YulIdentifier","src":"7632:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7645:9:44","nodeType":"YulIdentifier","src":"7645:9:44"},{"kind":"number","nativeSrc":"7656:2:44","nodeType":"YulLiteral","src":"7656:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7641:3:44","nodeType":"YulIdentifier","src":"7641:3:44"},"nativeSrc":"7641:18:44","nodeType":"YulFunctionCall","src":"7641:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"7588:43:44","nodeType":"YulIdentifier","src":"7588:43:44"},"nativeSrc":"7588:72:44","nodeType":"YulFunctionCall","src":"7588:72:44"},"nativeSrc":"7588:72:44","nodeType":"YulExpressionStatement","src":"7588:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"7335:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7425:9:44","nodeType":"YulTypedName","src":"7425:9:44","type":""},{"name":"value1","nativeSrc":"7437:6:44","nodeType":"YulTypedName","src":"7437:6:44","type":""},{"name":"value0","nativeSrc":"7445:6:44","nodeType":"YulTypedName","src":"7445:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7456:4:44","nodeType":"YulTypedName","src":"7456:4:44","type":""}],"src":"7335:332:44"},{"body":{"nativeSrc":"7727:32:44","nodeType":"YulBlock","src":"7727:32:44","statements":[{"nativeSrc":"7737:16:44","nodeType":"YulAssignment","src":"7737:16:44","value":{"name":"value","nativeSrc":"7748:5:44","nodeType":"YulIdentifier","src":"7748:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"7737:7:44","nodeType":"YulIdentifier","src":"7737:7:44"}]}]},"name":"cleanup_t_rational_48_by_1","nativeSrc":"7673:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7709:5:44","nodeType":"YulTypedName","src":"7709:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7719:7:44","nodeType":"YulTypedName","src":"7719:7:44","type":""}],"src":"7673:86:44"},{"body":{"nativeSrc":"7808:43:44","nodeType":"YulBlock","src":"7808:43:44","statements":[{"nativeSrc":"7818:27:44","nodeType":"YulAssignment","src":"7818:27:44","value":{"arguments":[{"name":"value","nativeSrc":"7833:5:44","nodeType":"YulIdentifier","src":"7833:5:44"},{"kind":"number","nativeSrc":"7840:4:44","nodeType":"YulLiteral","src":"7840:4:44","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"7829:3:44","nodeType":"YulIdentifier","src":"7829:3:44"},"nativeSrc":"7829:16:44","nodeType":"YulFunctionCall","src":"7829:16:44"},"variableNames":[{"name":"cleaned","nativeSrc":"7818:7:44","nodeType":"YulIdentifier","src":"7818:7:44"}]}]},"name":"cleanup_t_uint8","nativeSrc":"7765:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7790:5:44","nodeType":"YulTypedName","src":"7790:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7800:7:44","nodeType":"YulTypedName","src":"7800:7:44","type":""}],"src":"7765:86:44"},{"body":{"nativeSrc":"7924:89:44","nodeType":"YulBlock","src":"7924:89:44","statements":[{"nativeSrc":"7934:73:44","nodeType":"YulAssignment","src":"7934:73:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7999:5:44","nodeType":"YulIdentifier","src":"7999:5:44"}],"functionName":{"name":"cleanup_t_rational_48_by_1","nativeSrc":"7972:26:44","nodeType":"YulIdentifier","src":"7972:26:44"},"nativeSrc":"7972:33:44","nodeType":"YulFunctionCall","src":"7972:33:44"}],"functionName":{"name":"identity","nativeSrc":"7963:8:44","nodeType":"YulIdentifier","src":"7963:8:44"},"nativeSrc":"7963:43:44","nodeType":"YulFunctionCall","src":"7963:43:44"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"7947:15:44","nodeType":"YulIdentifier","src":"7947:15:44"},"nativeSrc":"7947:60:44","nodeType":"YulFunctionCall","src":"7947:60:44"},"variableNames":[{"name":"converted","nativeSrc":"7934:9:44","nodeType":"YulIdentifier","src":"7934:9:44"}]}]},"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"7857:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7904:5:44","nodeType":"YulTypedName","src":"7904:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7914:9:44","nodeType":"YulTypedName","src":"7914:9:44","type":""}],"src":"7857:156:44"},{"body":{"nativeSrc":"8091:73:44","nodeType":"YulBlock","src":"8091:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8108:3:44","nodeType":"YulIdentifier","src":"8108:3:44"},{"arguments":[{"name":"value","nativeSrc":"8151:5:44","nodeType":"YulIdentifier","src":"8151:5:44"}],"functionName":{"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"8113:37:44","nodeType":"YulIdentifier","src":"8113:37:44"},"nativeSrc":"8113:44:44","nodeType":"YulFunctionCall","src":"8113:44:44"}],"functionName":{"name":"mstore","nativeSrc":"8101:6:44","nodeType":"YulIdentifier","src":"8101:6:44"},"nativeSrc":"8101:57:44","nodeType":"YulFunctionCall","src":"8101:57:44"},"nativeSrc":"8101:57:44","nodeType":"YulExpressionStatement","src":"8101:57:44"}]},"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"8019:145:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8079:5:44","nodeType":"YulTypedName","src":"8079:5:44","type":""},{"name":"pos","nativeSrc":"8086:3:44","nodeType":"YulTypedName","src":"8086:3:44","type":""}],"src":"8019:145:44"},{"body":{"nativeSrc":"8215:32:44","nodeType":"YulBlock","src":"8215:32:44","statements":[{"nativeSrc":"8225:16:44","nodeType":"YulAssignment","src":"8225:16:44","value":{"name":"value","nativeSrc":"8236:5:44","nodeType":"YulIdentifier","src":"8236:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"8225:7:44","nodeType":"YulIdentifier","src":"8225:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"8170:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8197:5:44","nodeType":"YulTypedName","src":"8197:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8207:7:44","nodeType":"YulTypedName","src":"8207:7:44","type":""}],"src":"8170:77:44"},{"body":{"nativeSrc":"8318:53:44","nodeType":"YulBlock","src":"8318:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8335:3:44","nodeType":"YulIdentifier","src":"8335:3:44"},{"arguments":[{"name":"value","nativeSrc":"8358:5:44","nodeType":"YulIdentifier","src":"8358:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8340:17:44","nodeType":"YulIdentifier","src":"8340:17:44"},"nativeSrc":"8340:24:44","nodeType":"YulFunctionCall","src":"8340:24:44"}],"functionName":{"name":"mstore","nativeSrc":"8328:6:44","nodeType":"YulIdentifier","src":"8328:6:44"},"nativeSrc":"8328:37:44","nodeType":"YulFunctionCall","src":"8328:37:44"},"nativeSrc":"8328:37:44","nodeType":"YulExpressionStatement","src":"8328:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8253:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8306:5:44","nodeType":"YulTypedName","src":"8306:5:44","type":""},{"name":"pos","nativeSrc":"8313:3:44","nodeType":"YulTypedName","src":"8313:3:44","type":""}],"src":"8253:118:44"},{"body":{"nativeSrc":"8510:213:44","nodeType":"YulBlock","src":"8510:213:44","statements":[{"nativeSrc":"8520:26:44","nodeType":"YulAssignment","src":"8520:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8532:9:44","nodeType":"YulIdentifier","src":"8532:9:44"},{"kind":"number","nativeSrc":"8543:2:44","nodeType":"YulLiteral","src":"8543:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8528:3:44","nodeType":"YulIdentifier","src":"8528:3:44"},"nativeSrc":"8528:18:44","nodeType":"YulFunctionCall","src":"8528:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8520:4:44","nodeType":"YulIdentifier","src":"8520:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8607:6:44","nodeType":"YulIdentifier","src":"8607:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8620:9:44","nodeType":"YulIdentifier","src":"8620:9:44"},{"kind":"number","nativeSrc":"8631:1:44","nodeType":"YulLiteral","src":"8631:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8616:3:44","nodeType":"YulIdentifier","src":"8616:3:44"},"nativeSrc":"8616:17:44","nodeType":"YulFunctionCall","src":"8616:17:44"}],"functionName":{"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"8556:50:44","nodeType":"YulIdentifier","src":"8556:50:44"},"nativeSrc":"8556:78:44","nodeType":"YulFunctionCall","src":"8556:78:44"},"nativeSrc":"8556:78:44","nodeType":"YulExpressionStatement","src":"8556:78:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"8688:6:44","nodeType":"YulIdentifier","src":"8688:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8701:9:44","nodeType":"YulIdentifier","src":"8701:9:44"},{"kind":"number","nativeSrc":"8712:2:44","nodeType":"YulLiteral","src":"8712:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8697:3:44","nodeType":"YulIdentifier","src":"8697:3:44"},"nativeSrc":"8697:18:44","nodeType":"YulFunctionCall","src":"8697:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8644:43:44","nodeType":"YulIdentifier","src":"8644:43:44"},"nativeSrc":"8644:72:44","nodeType":"YulFunctionCall","src":"8644:72:44"},"nativeSrc":"8644:72:44","nodeType":"YulExpressionStatement","src":"8644:72:44"}]},"name":"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed","nativeSrc":"8377:346:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8474:9:44","nodeType":"YulTypedName","src":"8474:9:44","type":""},{"name":"value1","nativeSrc":"8486:6:44","nodeType":"YulTypedName","src":"8486:6:44","type":""},{"name":"value0","nativeSrc":"8494:6:44","nodeType":"YulTypedName","src":"8494:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8505:4:44","nodeType":"YulTypedName","src":"8505:4:44","type":""}],"src":"8377:346:44"},{"body":{"nativeSrc":"8773:160:44","nodeType":"YulBlock","src":"8773:160:44","statements":[{"nativeSrc":"8783:24:44","nodeType":"YulAssignment","src":"8783:24:44","value":{"arguments":[{"name":"x","nativeSrc":"8805:1:44","nodeType":"YulIdentifier","src":"8805:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"8788:16:44","nodeType":"YulIdentifier","src":"8788:16:44"},"nativeSrc":"8788:19:44","nodeType":"YulFunctionCall","src":"8788:19:44"},"variableNames":[{"name":"x","nativeSrc":"8783:1:44","nodeType":"YulIdentifier","src":"8783:1:44"}]},{"nativeSrc":"8816:24:44","nodeType":"YulAssignment","src":"8816:24:44","value":{"arguments":[{"name":"y","nativeSrc":"8838:1:44","nodeType":"YulIdentifier","src":"8838:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"8821:16:44","nodeType":"YulIdentifier","src":"8821:16:44"},"nativeSrc":"8821:19:44","nodeType":"YulFunctionCall","src":"8821:19:44"},"variableNames":[{"name":"y","nativeSrc":"8816:1:44","nodeType":"YulIdentifier","src":"8816:1:44"}]},{"nativeSrc":"8849:17:44","nodeType":"YulAssignment","src":"8849:17:44","value":{"arguments":[{"name":"x","nativeSrc":"8861:1:44","nodeType":"YulIdentifier","src":"8861:1:44"},{"name":"y","nativeSrc":"8864:1:44","nodeType":"YulIdentifier","src":"8864:1:44"}],"functionName":{"name":"sub","nativeSrc":"8857:3:44","nodeType":"YulIdentifier","src":"8857:3:44"},"nativeSrc":"8857:9:44","nodeType":"YulFunctionCall","src":"8857:9:44"},"variableNames":[{"name":"diff","nativeSrc":"8849:4:44","nodeType":"YulIdentifier","src":"8849:4:44"}]},{"body":{"nativeSrc":"8904:22:44","nodeType":"YulBlock","src":"8904:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8906:16:44","nodeType":"YulIdentifier","src":"8906:16:44"},"nativeSrc":"8906:18:44","nodeType":"YulFunctionCall","src":"8906:18:44"},"nativeSrc":"8906:18:44","nodeType":"YulExpressionStatement","src":"8906:18:44"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"8882:4:44","nodeType":"YulIdentifier","src":"8882:4:44"},{"kind":"number","nativeSrc":"8888:14:44","nodeType":"YulLiteral","src":"8888:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8879:2:44","nodeType":"YulIdentifier","src":"8879:2:44"},"nativeSrc":"8879:24:44","nodeType":"YulFunctionCall","src":"8879:24:44"},"nativeSrc":"8876:50:44","nodeType":"YulIf","src":"8876:50:44"}]},"name":"checked_sub_t_uint48","nativeSrc":"8729:204:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8759:1:44","nodeType":"YulTypedName","src":"8759:1:44","type":""},{"name":"y","nativeSrc":"8762:1:44","nodeType":"YulTypedName","src":"8762:1:44","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8768:4:44","nodeType":"YulTypedName","src":"8768:4:44","type":""}],"src":"8729:204:44"}]},"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 cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint48(value))\n    }\n\n    function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_bytes32t_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_bytes32(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 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 validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_uint48(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_uint48(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__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_uint48_to_t_uint48_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 checked_add_t_uint48(x, y) -> sum {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_rational_48_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n    }\n\n    function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\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_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_sub_t_uint48(x, y) -> diff {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7240":[{"length":32,"start":985}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101215760003560e01c806384ef8ffc116100ad578063cc8463c811610071578063cc8463c8146102e5578063cefc142914610303578063cf6eefb71461030d578063d547741f1461032c578063d602b9fd1461034857610121565b806384ef8ffc1461023c5780638da5cb5b1461025a57806391d1485414610278578063a1eda53c146102a8578063a217fddf146102c757610121565b8063248a9ca3116100f4578063248a9ca31461019c5780632f2ff15d146101cc57806336568abe146101e8578063634e93da14610204578063649a5ec71461022057610121565b806301ffc9a714610126578063022d63fb14610156578063095f025e146101745780630aa6220b14610192575b600080fd5b610140600480360381019061013b91906112a5565b610352565b60405161014d91906112ed565b60405180910390f35b61015e6103cc565b60405161016b9190611329565b60405180910390f35b61017c6103d7565b60405161018991906113c3565b60405180910390f35b61019a6103fb565b005b6101b660048036038101906101b19190611414565b610413565b6040516101c39190611450565b60405180910390f35b6101e660048036038101906101e191906114a9565b610432565b005b61020260048036038101906101fd91906114a9565b61047c565b005b61021e600480360381019061021991906114e9565b610591565b005b61023a60048036038101906102359190611542565b6105ab565b005b6102446105c5565b604051610251919061157e565b60405180910390f35b6102626105ef565b60405161026f919061157e565b60405180910390f35b610292600480360381019061028d91906114a9565b6105fe565b60405161029f91906112ed565b60405180910390f35b6102b0610668565b6040516102be929190611599565b60405180910390f35b6102cf6106c8565b6040516102dc9190611450565b60405180910390f35b6102ed6106cf565b6040516102fa9190611329565b60405180910390f35b61030b61073d565b005b6103156107d3565b6040516103239291906115c2565b60405180910390f35b610346600480360381019061034191906114a9565b610816565b005b610350610860565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103c557506103c482610878565b5b9050919050565b600062069780905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b610408816108f2565b610410610906565b50565b6000806000838152602001908152602001600020600101549050919050565b6000801b820361046e576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104788282610913565b5050565b6000801b821480156104c057506104916105c5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610583576000806104d06107d3565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610516575061051481610935565b155b8061052757506105258161094a565b155b1561056957806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105609190611329565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b61058d828261095e565b5050565b6000801b61059e816108f2565b6105a7826109d9565b5050565b6000801b6105b8816108f2565b6105c182610a54565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006105f96105c5565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061068b81610935565b801561069d575061069b8161094a565b155b6106a9576000806106c0565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b6000806002601a9054906101000a900465ffffffffffff1690506106f281610935565b801561070357506107028161094a565b5b610721576001601a9054906101000a900465ffffffffffff16610737565b600260149054906101000a900465ffffffffffff165b91505090565b60006107476107d3565b5090508073ffffffffffffffffffffffffffffffffffffffff16610769610abb565b73ffffffffffffffffffffffffffffffffffffffff16146107c85761078c610abb565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016107bf919061157e565b60405180910390fd5b6107d0610ac3565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b8203610852576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61085c8282610b92565b5050565b6000801b61086d816108f2565b610875610bb4565b50565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108eb57506108ea82610bc1565b5b9050919050565b610903816108fe610abb565b610c2b565b50565b610911600080610c7c565b565b61091c82610413565b610925816108f2565b61092f8383610d6c565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610966610abb565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d48282610e39565b505050565b60006109e36106cf565b6109ec42610ebc565b6109f6919061161a565b9050610a028282610f16565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610a489190611329565b60405180910390a25050565b6000610a5f82610fc9565b610a6842610ebc565b610a72919061161a565b9050610a7e8282610c7c565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610aaf929190611599565b60405180910390a15050565b600033905090565b600080610ace6107d3565b91509150610adb81610935565b1580610aed5750610aeb8161094a565b155b15610b2f57806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610b269190611329565b60405180910390fd5b610b436000801b610b3e6105c5565b610e39565b50610b516000801b83610d6c565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610b9b82610413565b610ba4816108f2565b610bae8383610e39565b50505050565b610bbf600080610f16565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c3582826105fe565b610c785780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610c6f929190611654565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610c9e81610935565b15610d1d57610cac8161094a565b15610cef57600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610d1c565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b8303610e2757600073ffffffffffffffffffffffffffffffffffffffff16610d986105c5565b73ffffffffffffffffffffffffffffffffffffffff1614610de5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610e318383611028565b905092915050565b60008060001b83148015610e7f5750610e506105c5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610eaa57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b610eb48383611119565b905092915050565b600065ffffffffffff8016821115610f0e576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401610f059291906116de565b60405180910390fd5b819050919050565b6000610f206107d3565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f9281610935565b15610fc4577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b600080610fd46106cf565b90508065ffffffffffff168365ffffffffffff1611610ffe578281610ff99190611707565b611020565b61101f8365ffffffffffff166110126103cc565b65ffffffffffff1661120b565b5b915050919050565b600061103483836105fe565b61110e57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506110ab610abb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611113565b600090505b92915050565b600061112583836105fe565b1561120057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061119d610abb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611205565b600090505b92915050565b600061121a8284108484611222565b905092915050565b600061122d8461123c565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6112828161124d565b811461128d57600080fd5b50565b60008135905061129f81611279565b92915050565b6000602082840312156112bb576112ba611248565b5b60006112c984828501611290565b91505092915050565b60008115159050919050565b6112e7816112d2565b82525050565b600060208201905061130260008301846112de565b92915050565b600065ffffffffffff82169050919050565b61132381611308565b82525050565b600060208201905061133e600083018461131a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061138961138461137f84611344565b611364565b611344565b9050919050565b600061139b8261136e565b9050919050565b60006113ad82611390565b9050919050565b6113bd816113a2565b82525050565b60006020820190506113d860008301846113b4565b92915050565b6000819050919050565b6113f1816113de565b81146113fc57600080fd5b50565b60008135905061140e816113e8565b92915050565b60006020828403121561142a57611429611248565b5b6000611438848285016113ff565b91505092915050565b61144a816113de565b82525050565b60006020820190506114656000830184611441565b92915050565b600061147682611344565b9050919050565b6114868161146b565b811461149157600080fd5b50565b6000813590506114a38161147d565b92915050565b600080604083850312156114c0576114bf611248565b5b60006114ce858286016113ff565b92505060206114df85828601611494565b9150509250929050565b6000602082840312156114ff576114fe611248565b5b600061150d84828501611494565b91505092915050565b61151f81611308565b811461152a57600080fd5b50565b60008135905061153c81611516565b92915050565b60006020828403121561155857611557611248565b5b60006115668482850161152d565b91505092915050565b6115788161146b565b82525050565b6000602082019050611593600083018461156f565b92915050565b60006040820190506115ae600083018561131a565b6115bb602083018461131a565b9392505050565b60006040820190506115d7600083018561156f565b6115e4602083018461131a565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061162582611308565b915061163083611308565b9250828201905065ffffffffffff81111561164e5761164d6115eb565b5b92915050565b6000604082019050611669600083018561156f565b6116766020830184611441565b9392505050565b6000819050919050565b600060ff82169050919050565b60006116af6116aa6116a58461167d565b611364565b611687565b9050919050565b6116bf81611694565b82525050565b6000819050919050565b6116d8816116c5565b82525050565b60006040820190506116f360008301856116b6565b61170060208301846116cf565b9392505050565b600061171282611308565b915061171d83611308565b9250828203905065ffffffffffff81111561173b5761173a6115eb565b5b9291505056fea2646970667358221220d08dc27d37232bd451d6a0db84bf9e7c89d75fd4721f17fc992d67d97c2d740a64736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x121 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84EF8FFC GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x32C JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x348 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x25A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x278 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2A8 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2C7 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x248A9CA3 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x220 JUMPI PUSH2 0x121 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x156 JUMPI DUP1 PUSH4 0x95F025E EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x140 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x13B SWAP2 SWAP1 PUSH2 0x12A5 JUMP JUMPDEST PUSH2 0x352 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14D SWAP2 SWAP1 PUSH2 0x12ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15E PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16B SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17C PUSH2 0x3D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x189 SWAP2 SWAP1 PUSH2 0x13C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH2 0x3FB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B1 SWAP2 SWAP1 PUSH2 0x1414 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C3 SWAP2 SWAP1 PUSH2 0x1450 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E1 SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x432 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x202 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x47C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x219 SWAP2 SWAP1 PUSH2 0x14E9 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x235 SWAP2 SWAP1 PUSH2 0x1542 JUMP JUMPDEST PUSH2 0x5AB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x244 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x251 SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x262 PUSH2 0x5EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26F SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x292 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28D SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x5FE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x12ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B0 PUSH2 0x668 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2BE SWAP3 SWAP2 SWAP1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CF PUSH2 0x6C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DC SWAP2 SWAP1 PUSH2 0x1450 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2ED PUSH2 0x6CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30B PUSH2 0x73D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x315 PUSH2 0x7D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x323 SWAP3 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x346 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x341 SWAP2 SWAP1 PUSH2 0x14A9 JUMP JUMPDEST PUSH2 0x816 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x350 PUSH2 0x860 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x3C5 JUMPI POP PUSH2 0x3C4 DUP3 PUSH2 0x878 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x408 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x410 PUSH2 0x906 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x46E JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x478 DUP3 DUP3 PUSH2 0x913 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x4C0 JUMPI POP PUSH2 0x491 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x583 JUMPI PUSH1 0x0 DUP1 PUSH2 0x4D0 PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x516 JUMPI POP PUSH2 0x514 DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x527 JUMPI POP PUSH2 0x525 DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x569 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x560 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x58D DUP3 DUP3 PUSH2 0x95E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x59E DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x5A7 DUP3 PUSH2 0x9D9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x5B8 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x5C1 DUP3 PUSH2 0xA54 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F9 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x68B DUP2 PUSH2 0x935 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x69D JUMPI POP PUSH2 0x69B DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x6F2 DUP2 PUSH2 0x935 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x703 JUMPI POP PUSH2 0x702 DUP2 PUSH2 0x94A JUMP JUMPDEST JUMPDEST PUSH2 0x721 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x737 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x747 PUSH2 0x7D3 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x769 PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7C8 JUMPI PUSH2 0x78C PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7BF SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7D0 PUSH2 0xAC3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x852 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x85C DUP3 DUP3 PUSH2 0xB92 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x86D DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x875 PUSH2 0xBB4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8EB JUMPI POP PUSH2 0x8EA DUP3 PUSH2 0xBC1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x903 DUP2 PUSH2 0x8FE PUSH2 0xABB JUMP JUMPDEST PUSH2 0xC2B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x911 PUSH1 0x0 DUP1 PUSH2 0xC7C JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x91C DUP3 PUSH2 0x413 JUMP JUMPDEST PUSH2 0x925 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0x92F DUP4 DUP4 PUSH2 0xD6C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x966 PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9D4 DUP3 DUP3 PUSH2 0xE39 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E3 PUSH2 0x6CF JUMP JUMPDEST PUSH2 0x9EC TIMESTAMP PUSH2 0xEBC JUMP JUMPDEST PUSH2 0x9F6 SWAP2 SWAP1 PUSH2 0x161A JUMP JUMPDEST SWAP1 POP PUSH2 0xA02 DUP3 DUP3 PUSH2 0xF16 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xA48 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA5F DUP3 PUSH2 0xFC9 JUMP JUMPDEST PUSH2 0xA68 TIMESTAMP PUSH2 0xEBC JUMP JUMPDEST PUSH2 0xA72 SWAP2 SWAP1 PUSH2 0x161A JUMP JUMPDEST SWAP1 POP PUSH2 0xA7E DUP3 DUP3 PUSH2 0xC7C JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xAAF SWAP3 SWAP2 SWAP1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xACE PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xADB DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xAED JUMPI POP PUSH2 0xAEB DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB2F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB26 SWAP2 SWAP1 PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB43 PUSH1 0x0 DUP1 SHL PUSH2 0xB3E PUSH2 0x5C5 JUMP JUMPDEST PUSH2 0xE39 JUMP JUMPDEST POP PUSH2 0xB51 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xD6C JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xB9B DUP3 PUSH2 0x413 JUMP JUMPDEST PUSH2 0xBA4 DUP2 PUSH2 0x8F2 JUMP JUMPDEST PUSH2 0xBAE DUP4 DUP4 PUSH2 0xE39 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xBBF PUSH1 0x0 DUP1 PUSH2 0xF16 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC35 DUP3 DUP3 PUSH2 0x5FE JUMP JUMPDEST PUSH2 0xC78 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC6F SWAP3 SWAP2 SWAP1 PUSH2 0x1654 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xC9E DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO PUSH2 0xD1D JUMPI PUSH2 0xCAC DUP2 PUSH2 0x94A JUMP JUMPDEST ISZERO PUSH2 0xCEF JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xD1C JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xE27 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD98 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDE5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xE31 DUP4 DUP4 PUSH2 0x1028 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0xE7F JUMPI POP PUSH2 0xE50 PUSH2 0x5C5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xEAA JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0xEB4 DUP4 DUP4 PUSH2 0x1119 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0xF0E JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF05 SWAP3 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF20 PUSH2 0x7D3 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF92 DUP2 PUSH2 0x935 JUMP JUMPDEST ISZERO PUSH2 0xFC4 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xFD4 PUSH2 0x6CF JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0xFFE JUMPI DUP3 DUP2 PUSH2 0xFF9 SWAP2 SWAP1 PUSH2 0x1707 JUMP JUMPDEST PUSH2 0x1020 JUMP JUMPDEST PUSH2 0x101F DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1012 PUSH2 0x3CC JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x120B JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1034 DUP4 DUP4 PUSH2 0x5FE JUMP JUMPDEST PUSH2 0x110E JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x10AB PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1113 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1125 DUP4 DUP4 PUSH2 0x5FE JUMP JUMPDEST ISZERO PUSH2 0x1200 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x119D PUSH2 0xABB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1205 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x121A DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1222 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122D DUP5 PUSH2 0x123C JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1282 DUP2 PUSH2 0x124D JUMP JUMPDEST DUP2 EQ PUSH2 0x128D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x129F DUP2 PUSH2 0x1279 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12BB JUMPI PUSH2 0x12BA PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x12C9 DUP5 DUP3 DUP6 ADD PUSH2 0x1290 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E7 DUP2 PUSH2 0x12D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1302 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x12DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1323 DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x133E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x131A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1389 PUSH2 0x1384 PUSH2 0x137F DUP5 PUSH2 0x1344 JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x1344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x139B DUP3 PUSH2 0x136E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13AD DUP3 PUSH2 0x1390 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13BD DUP2 PUSH2 0x13A2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13D8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13B4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13F1 DUP2 PUSH2 0x13DE JUMP JUMPDEST DUP2 EQ PUSH2 0x13FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x140E DUP2 PUSH2 0x13E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x142A JUMPI PUSH2 0x1429 PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1438 DUP5 DUP3 DUP6 ADD PUSH2 0x13FF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x144A DUP2 PUSH2 0x13DE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1465 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1441 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1476 DUP3 PUSH2 0x1344 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1486 DUP2 PUSH2 0x146B JUMP JUMPDEST DUP2 EQ PUSH2 0x1491 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14A3 DUP2 PUSH2 0x147D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14C0 JUMPI PUSH2 0x14BF PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14CE DUP6 DUP3 DUP7 ADD PUSH2 0x13FF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14DF DUP6 DUP3 DUP7 ADD PUSH2 0x1494 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14FF JUMPI PUSH2 0x14FE PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x150D DUP5 DUP3 DUP6 ADD PUSH2 0x1494 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x151F DUP2 PUSH2 0x1308 JUMP JUMPDEST DUP2 EQ PUSH2 0x152A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x153C DUP2 PUSH2 0x1516 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1558 JUMPI PUSH2 0x1557 PUSH2 0x1248 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1566 DUP5 DUP3 DUP6 ADD PUSH2 0x152D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1578 DUP2 PUSH2 0x146B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1593 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x156F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15AE PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x131A JUMP JUMPDEST PUSH2 0x15BB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x131A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15D7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x156F JUMP JUMPDEST PUSH2 0x15E4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x131A 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 0x1625 DUP3 PUSH2 0x1308 JUMP JUMPDEST SWAP2 POP PUSH2 0x1630 DUP4 PUSH2 0x1308 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x164E JUMPI PUSH2 0x164D PUSH2 0x15EB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1669 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x156F JUMP JUMPDEST PUSH2 0x1676 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1441 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16AF PUSH2 0x16AA PUSH2 0x16A5 DUP5 PUSH2 0x167D JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x1687 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16BF DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16D8 DUP2 PUSH2 0x16C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F3 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x16B6 JUMP JUMPDEST PUSH2 0x1700 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x16CF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1712 DUP3 PUSH2 0x1308 JUMP JUMPDEST SWAP2 POP PUSH2 0x171D DUP4 PUSH2 0x1308 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x173B JUMPI PUSH2 0x173A PUSH2 0x15EB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 DUP14 0xC2 PUSH30 0x37232BD451D6A0DB84BF9E7C89D75FD4721F17FC992D67D97C2D740A6473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"490:1303:32:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:59:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126:9;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6707:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2667:219;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;580:59:32:-;;;:::o;10927:126:9:-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;3198:265:9:-;2232:4:6;3325:18:9;;3317:4;:26;3313:104;;3366:40;;;;;;;;;;;;;;3313:104;3426:30;3442:4;3448:7;3426:15;:30::i;:::-;3198:265;;:::o;4515:566::-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;8068:150::-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;3563:267::-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;4226:136:6:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;14471:106:9:-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;5946:271::-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:44:-;197:1;194;187: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:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:126::-;2003:7;2043:42;2036:5;2032:54;2021:65;;1966:126;;;:::o;2098:60::-;2126:3;2147:5;2140:12;;2098:60;;;:::o;2164:142::-;2214:9;2247:53;2265:34;2274:24;2292:5;2274:24;:::i;:::-;2265:34;:::i;:::-;2247:53;:::i;:::-;2234:66;;2164:142;;;:::o;2312:126::-;2362:9;2395:37;2426:5;2395:37;:::i;:::-;2382:50;;2312:126;;;:::o;2444:156::-;2524:9;2557:37;2588:5;2557:37;:::i;:::-;2544:50;;2444:156;;;:::o;2606:191::-;2723:67;2784:5;2723:67;:::i;:::-;2718:3;2711:80;2606:191;;:::o;2803:282::-;2926:4;2964:2;2953:9;2949:18;2941:26;;2977:101;3075:1;3064:9;3060:17;3051:6;2977:101;:::i;:::-;2803:282;;;;:::o;3091:77::-;3128:7;3157:5;3146:16;;3091:77;;;:::o;3174:122::-;3247:24;3265:5;3247:24;:::i;:::-;3240:5;3237:35;3227:63;;3286:1;3283;3276:12;3227:63;3174:122;:::o;3302:139::-;3348:5;3386:6;3373:20;3364:29;;3402:33;3429:5;3402:33;:::i;:::-;3302:139;;;;:::o;3447:329::-;3506:6;3555:2;3543:9;3534:7;3530:23;3526:32;3523:119;;;3561:79;;:::i;:::-;3523:119;3681:1;3706:53;3751:7;3742:6;3731:9;3727:22;3706:53;:::i;:::-;3696:63;;3652:117;3447:329;;;;:::o;3782:118::-;3869:24;3887:5;3869:24;:::i;:::-;3864:3;3857:37;3782:118;;:::o;3906:222::-;3999:4;4037:2;4026:9;4022:18;4014:26;;4050:71;4118:1;4107:9;4103:17;4094:6;4050:71;:::i;:::-;3906:222;;;;:::o;4134:96::-;4171:7;4200:24;4218:5;4200:24;:::i;:::-;4189:35;;4134:96;;;:::o;4236:122::-;4309:24;4327:5;4309:24;:::i;:::-;4302:5;4299:35;4289:63;;4348:1;4345;4338:12;4289:63;4236:122;:::o;4364:139::-;4410:5;4448:6;4435:20;4426:29;;4464:33;4491:5;4464:33;:::i;:::-;4364:139;;;;:::o;4509:474::-;4577:6;4585;4634:2;4622:9;4613:7;4609:23;4605:32;4602:119;;;4640:79;;:::i;:::-;4602:119;4760:1;4785:53;4830:7;4821:6;4810:9;4806:22;4785:53;:::i;:::-;4775:63;;4731:117;4887:2;4913:53;4958:7;4949:6;4938:9;4934:22;4913:53;:::i;:::-;4903:63;;4858:118;4509:474;;;;;:::o;4989:329::-;5048:6;5097:2;5085:9;5076:7;5072:23;5068:32;5065:119;;;5103:79;;:::i;:::-;5065:119;5223:1;5248:53;5293:7;5284:6;5273:9;5269:22;5248:53;:::i;:::-;5238:63;;5194:117;4989:329;;;;:::o;5324:120::-;5396:23;5413:5;5396:23;:::i;:::-;5389:5;5386:34;5376:62;;5434:1;5431;5424:12;5376:62;5324:120;:::o;5450:137::-;5495:5;5533:6;5520:20;5511:29;;5549:32;5575:5;5549:32;:::i;:::-;5450:137;;;;:::o;5593:327::-;5651:6;5700:2;5688:9;5679:7;5675:23;5671:32;5668:119;;;5706:79;;:::i;:::-;5668:119;5826:1;5851:52;5895:7;5886:6;5875:9;5871:22;5851:52;:::i;:::-;5841:62;;5797:116;5593:327;;;;:::o;5926:118::-;6013:24;6031:5;6013:24;:::i;:::-;6008:3;6001:37;5926:118;;:::o;6050:222::-;6143:4;6181:2;6170:9;6166:18;6158:26;;6194:71;6262:1;6251:9;6247:17;6238:6;6194:71;:::i;:::-;6050:222;;;;:::o;6278:324::-;6395:4;6433:2;6422:9;6418:18;6410:26;;6446:69;6512:1;6501:9;6497:17;6488:6;6446:69;:::i;:::-;6525:70;6591:2;6580:9;6576:18;6567:6;6525:70;:::i;:::-;6278:324;;;;;:::o;6608:328::-;6727:4;6765:2;6754:9;6750:18;6742:26;;6778:71;6846:1;6835:9;6831:17;6822:6;6778:71;:::i;:::-;6859:70;6925:2;6914:9;6910:18;6901:6;6859:70;:::i;:::-;6608:328;;;;;:::o;6942:180::-;6990:77;6987:1;6980:88;7087:4;7084:1;7077:15;7111:4;7108:1;7101:15;7128:201;7167:3;7186:19;7203:1;7186:19;:::i;:::-;7181:24;;7219:19;7236:1;7219:19;:::i;:::-;7214:24;;7261:1;7258;7254:9;7247:16;;7284:14;7279:3;7276:23;7273:49;;;7302:18;;:::i;:::-;7273:49;7128:201;;;;:::o;7335:332::-;7456:4;7494:2;7483:9;7479:18;7471:26;;7507:71;7575:1;7564:9;7560:17;7551:6;7507:71;:::i;:::-;7588:72;7656:2;7645:9;7641:18;7632:6;7588:72;:::i;:::-;7335:332;;;;;:::o;7673:86::-;7719:7;7748:5;7737:16;;7673:86;;;:::o;7765:::-;7800:7;7840:4;7833:5;7829:16;7818:27;;7765:86;;;:::o;7857:156::-;7914:9;7947:60;7963:43;7972:33;7999:5;7972:33;:::i;:::-;7963:43;:::i;:::-;7947:60;:::i;:::-;7934:73;;7857:156;;;:::o;8019:145::-;8113:44;8151:5;8113:44;:::i;:::-;8108:3;8101:57;8019:145;;:::o;8170:77::-;8207:7;8236:5;8225:16;;8170:77;;;:::o;8253:118::-;8340:24;8358:5;8340:24;:::i;:::-;8335:3;8328:37;8253:118;;:::o;8377:346::-;8505:4;8543:2;8532:9;8528:18;8520:26;;8556:78;8631:1;8620:9;8616:17;8607:6;8556:78;:::i;:::-;8644:72;8712:2;8701:9;8697:18;8688:6;8644:72;:::i;:::-;8377:346;;;;;:::o;8729:204::-;8768:4;8788:19;8805:1;8788:19;:::i;:::-;8783:24;;8821:19;8838:1;8821:19;:::i;:::-;8816:24;;8864:1;8861;8857:9;8849:17;;8888:14;8882:4;8879:24;8876:50;;;8906:18;;:::i;:::-;8876:50;8729:204;;;;:::o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","crossDomainMessanger()":"095f025e","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_crossDomainMessanger\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"initialDelay\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"initialDefaultAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvalidMessageSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessanger\",\"outputs\":[{\"internalType\":\"contract ICrossDomainMessanger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract extends the OpenZeppelin AccessControlDefaultAdminRules contract to include cross-chain role management.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidMessageSender(address)\":[{\"details\":\"Thrown when the caller is not the cross domain messanger.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"See {AccessControlDefaultAdminRules-constructor}.\",\"params\":{\"_crossDomainMessanger\":\"Address of the cross-domain messenger contract.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"SuperChainAccessControlDefaultAdminRules\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol\":\"SuperChainAccessControlDefaultAdminRules\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]},\"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x673d4869ce38e8c86b134c18fd24c8d628091d43338e5dcdd7b6299a8a806c12\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://87351faca1a147e226c9f736dcc8a8cb3b64e57ff8ecd3e73add7c9651dff7da\",\"dweb:/ipfs/Qma2hiVgc1tSotYEB6tBsgnmjWdCzAn5JUzYXwGaCu6rsG\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"},{"astId":1741,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_pendingDefaultAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1743,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_pendingDefaultAdminSchedule","offset":20,"slot":"1","type":"t_uint48"},{"astId":1745,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_currentDelay","offset":26,"slot":"1","type":"t_uint48"},{"astId":1747,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_currentDefaultAdmin","offset":0,"slot":"2","type":"t_address"},{"astId":1749,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_pendingDelay","offset":20,"slot":"2","type":"t_uint48"},{"astId":1751,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"_pendingDelaySchedule","offset":26,"slot":"2","type":"t_uint48"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol:SuperChainAccessControlDefaultAdminRules","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint48":{"encoding":"inplace","label":"uint48","numberOfBytes":"6"}}}}},"contracts/Op/mocks/MockCrossDomainMessenger.sol":{"MockCrossDomainMessenger":{"abi":[{"inputs":[{"internalType":"address","name":"_xDomainMessageSender","type":"address"},{"internalType":"bool","name":"_shouldSendMessage","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"MessageSent","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_shouldSendMessage","type":"bool"}],"name":"setShouldSendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_xDomainMessageSenderAddress","type":"address"}],"name":"setXDomainMessageSenderAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldSendMessage","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_7341":{"entryPoint":null,"id":7341,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":225,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":281,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bool_fromMemory":{"entryPoint":302,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":184,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":246,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":152,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":147,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":202,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":258,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1710:44","nodeType":"YulBlock","src":"0:1710:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"887:48:44","nodeType":"YulBlock","src":"887:48:44","statements":[{"nativeSrc":"897:32:44","nodeType":"YulAssignment","src":"897:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"922:5:44","nodeType":"YulIdentifier","src":"922:5:44"}],"functionName":{"name":"iszero","nativeSrc":"915:6:44","nodeType":"YulIdentifier","src":"915:6:44"},"nativeSrc":"915:13:44","nodeType":"YulFunctionCall","src":"915:13:44"}],"functionName":{"name":"iszero","nativeSrc":"908:6:44","nodeType":"YulIdentifier","src":"908:6:44"},"nativeSrc":"908:21:44","nodeType":"YulFunctionCall","src":"908:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"897:7:44","nodeType":"YulIdentifier","src":"897:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"845:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"869:5:44","nodeType":"YulTypedName","src":"869:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"879:7:44","nodeType":"YulTypedName","src":"879:7:44","type":""}],"src":"845:90:44"},{"body":{"nativeSrc":"981:76:44","nodeType":"YulBlock","src":"981:76:44","statements":[{"body":{"nativeSrc":"1035:16:44","nodeType":"YulBlock","src":"1035:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1044:1:44","nodeType":"YulLiteral","src":"1044:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1047:1:44","nodeType":"YulLiteral","src":"1047:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1037:6:44","nodeType":"YulIdentifier","src":"1037:6:44"},"nativeSrc":"1037:12:44","nodeType":"YulFunctionCall","src":"1037:12:44"},"nativeSrc":"1037:12:44","nodeType":"YulExpressionStatement","src":"1037:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1004:5:44","nodeType":"YulIdentifier","src":"1004:5:44"},{"arguments":[{"name":"value","nativeSrc":"1026:5:44","nodeType":"YulIdentifier","src":"1026:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1011:14:44","nodeType":"YulIdentifier","src":"1011:14:44"},"nativeSrc":"1011:21:44","nodeType":"YulFunctionCall","src":"1011:21:44"}],"functionName":{"name":"eq","nativeSrc":"1001:2:44","nodeType":"YulIdentifier","src":"1001:2:44"},"nativeSrc":"1001:32:44","nodeType":"YulFunctionCall","src":"1001:32:44"}],"functionName":{"name":"iszero","nativeSrc":"994:6:44","nodeType":"YulIdentifier","src":"994:6:44"},"nativeSrc":"994:40:44","nodeType":"YulFunctionCall","src":"994:40:44"},"nativeSrc":"991:60:44","nodeType":"YulIf","src":"991:60:44"}]},"name":"validator_revert_t_bool","nativeSrc":"941:116:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"974:5:44","nodeType":"YulTypedName","src":"974:5:44","type":""}],"src":"941:116:44"},{"body":{"nativeSrc":"1123:77:44","nodeType":"YulBlock","src":"1123:77:44","statements":[{"nativeSrc":"1133:22:44","nodeType":"YulAssignment","src":"1133:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"1148:6:44","nodeType":"YulIdentifier","src":"1148:6:44"}],"functionName":{"name":"mload","nativeSrc":"1142:5:44","nodeType":"YulIdentifier","src":"1142:5:44"},"nativeSrc":"1142:13:44","nodeType":"YulFunctionCall","src":"1142:13:44"},"variableNames":[{"name":"value","nativeSrc":"1133:5:44","nodeType":"YulIdentifier","src":"1133:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1188:5:44","nodeType":"YulIdentifier","src":"1188:5:44"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"1164:23:44","nodeType":"YulIdentifier","src":"1164:23:44"},"nativeSrc":"1164:30:44","nodeType":"YulFunctionCall","src":"1164:30:44"},"nativeSrc":"1164:30:44","nodeType":"YulExpressionStatement","src":"1164:30:44"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"1063:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1101:6:44","nodeType":"YulTypedName","src":"1101:6:44","type":""},{"name":"end","nativeSrc":"1109:3:44","nodeType":"YulTypedName","src":"1109:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1117:5:44","nodeType":"YulTypedName","src":"1117:5:44","type":""}],"src":"1063:137:44"},{"body":{"nativeSrc":"1297:410:44","nodeType":"YulBlock","src":"1297:410:44","statements":[{"body":{"nativeSrc":"1343:83:44","nodeType":"YulBlock","src":"1343:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1345:77:44","nodeType":"YulIdentifier","src":"1345:77:44"},"nativeSrc":"1345:79:44","nodeType":"YulFunctionCall","src":"1345:79:44"},"nativeSrc":"1345:79:44","nodeType":"YulExpressionStatement","src":"1345:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1318:7:44","nodeType":"YulIdentifier","src":"1318:7:44"},{"name":"headStart","nativeSrc":"1327:9:44","nodeType":"YulIdentifier","src":"1327:9:44"}],"functionName":{"name":"sub","nativeSrc":"1314:3:44","nodeType":"YulIdentifier","src":"1314:3:44"},"nativeSrc":"1314:23:44","nodeType":"YulFunctionCall","src":"1314:23:44"},{"kind":"number","nativeSrc":"1339:2:44","nodeType":"YulLiteral","src":"1339:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1310:3:44","nodeType":"YulIdentifier","src":"1310:3:44"},"nativeSrc":"1310:32:44","nodeType":"YulFunctionCall","src":"1310:32:44"},"nativeSrc":"1307:119:44","nodeType":"YulIf","src":"1307:119:44"},{"nativeSrc":"1436:128:44","nodeType":"YulBlock","src":"1436:128:44","statements":[{"nativeSrc":"1451:15:44","nodeType":"YulVariableDeclaration","src":"1451:15:44","value":{"kind":"number","nativeSrc":"1465:1:44","nodeType":"YulLiteral","src":"1465:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1455:6:44","nodeType":"YulTypedName","src":"1455:6:44","type":""}]},{"nativeSrc":"1480:74:44","nodeType":"YulAssignment","src":"1480:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1526:9:44","nodeType":"YulIdentifier","src":"1526:9:44"},{"name":"offset","nativeSrc":"1537:6:44","nodeType":"YulIdentifier","src":"1537:6:44"}],"functionName":{"name":"add","nativeSrc":"1522:3:44","nodeType":"YulIdentifier","src":"1522:3:44"},"nativeSrc":"1522:22:44","nodeType":"YulFunctionCall","src":"1522:22:44"},{"name":"dataEnd","nativeSrc":"1546:7:44","nodeType":"YulIdentifier","src":"1546:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1490:31:44","nodeType":"YulIdentifier","src":"1490:31:44"},"nativeSrc":"1490:64:44","nodeType":"YulFunctionCall","src":"1490:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1480:6:44","nodeType":"YulIdentifier","src":"1480:6:44"}]}]},{"nativeSrc":"1574:126:44","nodeType":"YulBlock","src":"1574:126:44","statements":[{"nativeSrc":"1589:16:44","nodeType":"YulVariableDeclaration","src":"1589:16:44","value":{"kind":"number","nativeSrc":"1603:2:44","nodeType":"YulLiteral","src":"1603:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1593:6:44","nodeType":"YulTypedName","src":"1593:6:44","type":""}]},{"nativeSrc":"1619:71:44","nodeType":"YulAssignment","src":"1619:71:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1662:9:44","nodeType":"YulIdentifier","src":"1662:9:44"},{"name":"offset","nativeSrc":"1673:6:44","nodeType":"YulIdentifier","src":"1673:6:44"}],"functionName":{"name":"add","nativeSrc":"1658:3:44","nodeType":"YulIdentifier","src":"1658:3:44"},"nativeSrc":"1658:22:44","nodeType":"YulFunctionCall","src":"1658:22:44"},{"name":"dataEnd","nativeSrc":"1682:7:44","nodeType":"YulIdentifier","src":"1682:7:44"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"1629:28:44","nodeType":"YulIdentifier","src":"1629:28:44"},"nativeSrc":"1629:61:44","nodeType":"YulFunctionCall","src":"1629:61:44"},"variableNames":[{"name":"value1","nativeSrc":"1619:6:44","nodeType":"YulIdentifier","src":"1619:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool_fromMemory","nativeSrc":"1206:501:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1259:9:44","nodeType":"YulTypedName","src":"1259:9:44","type":""},{"name":"dataEnd","nativeSrc":"1270:7:44","nodeType":"YulTypedName","src":"1270:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1282:6:44","nodeType":"YulTypedName","src":"1282:6:44","type":""},{"name":"value1","nativeSrc":"1290:6:44","nodeType":"YulTypedName","src":"1290:6:44","type":""}],"src":"1206:501:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\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_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bool_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040516108383803806108388339818101604052810190610032919061012e565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060146101000a81548160ff021916908315150217905550505061016e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100c382610098565b9050919050565b6100d3816100b8565b81146100de57600080fd5b50565b6000815190506100f0816100ca565b92915050565b60008115159050919050565b61010b816100f6565b811461011657600080fd5b50565b60008151905061012881610102565b92915050565b6000806040838503121561014557610144610093565b5b6000610153858286016100e1565b925050602061016485828601610119565b9150509250929050565b6106bb8061017d6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633dbb202b1461005c5780636e296e45146100785780638634fbeb14610096578063b892c533146100b2578063e1b0967f146100ce575b600080fd5b610076600480360381019061007191906103b8565b6100ec565b005b610080610213565b60405161008d919061043b565b60405180910390f35b6100b060048036038101906100ab919061048e565b61023c565b005b6100cc60048036038101906100c791906104bb565b610259565b005b6100d661029c565b6040516100e391906104f7565b60405180910390f35b600060149054906101000a900460ff16156101d0576000808573ffffffffffffffffffffffffffffffffffffffff168363ffffffff168686604051610132929190610551565b60006040518083038160008787f1925050503d8060008114610170576040519150601f19603f3d011682016040523d82523d6000602084013e610175565b606091505b5091509150816101cd576000815111156101925780518060208301fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c4906105c7565b60405180910390fd5b50505b7f3ac974344a508e71193447b4a05edfc424d12096fbe794d32e600ec0702fc877848484846040516102059493929190610645565b60405180910390a150505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600060146101000a81548160ff02191690831515021790555050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1681565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102e4826102b9565b9050919050565b6102f4816102d9565b81146102ff57600080fd5b50565b600081359050610311816102eb565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261033c5761033b610317565b5b8235905067ffffffffffffffff8111156103595761035861031c565b5b60208301915083600182028301111561037557610374610321565b5b9250929050565b600063ffffffff82169050919050565b6103958161037c565b81146103a057600080fd5b50565b6000813590506103b28161038c565b92915050565b600080600080606085870312156103d2576103d16102af565b5b60006103e087828801610302565b945050602085013567ffffffffffffffff811115610401576104006102b4565b5b61040d87828801610326565b93509350506040610420878288016103a3565b91505092959194509250565b610435816102d9565b82525050565b6000602082019050610450600083018461042c565b92915050565b60008115159050919050565b61046b81610456565b811461047657600080fd5b50565b60008135905061048881610462565b92915050565b6000602082840312156104a4576104a36102af565b5b60006104b284828501610479565b91505092915050565b6000602082840312156104d1576104d06102af565b5b60006104df84828501610302565b91505092915050565b6104f181610456565b82525050565b600060208201905061050c60008301846104e8565b92915050565b600081905092915050565b82818337600083830152505050565b60006105388385610512565b935061054583858461051d565b82840190509392505050565b600061055e82848661052c565b91508190509392505050565b600082825260208201905092915050565b7f43616c6c206661696c656420776974686f757420726561736f6e000000000000600082015250565b60006105b1601a8361056a565b91506105bc8261057b565b602082019050919050565b600060208201905081810360008301526105e0816105a4565b9050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b600061061583856105e7565b935061062283858461051d565b61062b836105f8565b840190509392505050565b61063f8161037c565b82525050565b600060608201905061065a600083018761042c565b818103602083015261066d818587610609565b905061067c6040830184610636565b9594505050505056fea2646970667358221220de7fd9ad42c7a4b09737147d9f9702b41b1881d758bd9d40df7c89df3d4d260264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x838 CODESIZE SUB DUP1 PUSH2 0x838 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x12E JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x16E JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC3 DUP3 PUSH2 0x98 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xB8 JUMP JUMPDEST DUP2 EQ PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xF0 DUP2 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10B DUP2 PUSH2 0xF6 JUMP JUMPDEST DUP2 EQ PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x128 DUP2 PUSH2 0x102 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x145 JUMPI PUSH2 0x144 PUSH2 0x93 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x153 DUP6 DUP3 DUP7 ADD PUSH2 0xE1 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x164 DUP6 DUP3 DUP7 ADD PUSH2 0x119 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x6BB DUP1 PUSH2 0x17D 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3DBB202B EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x6E296E45 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x8634FBEB EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0xB892C533 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xE1B0967F EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0xEC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH2 0x23C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x4BB JUMP JUMPDEST PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH4 0xFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x132 SWAP3 SWAP2 SWAP1 PUSH2 0x551 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP8 CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x170 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 0x175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1CD JUMPI PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x192 JUMPI DUP1 MLOAD DUP1 PUSH1 0x20 DUP4 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4 SWAP1 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMPDEST PUSH32 0x3AC974344A508E71193447B4A05EDFC424D12096FBE794D32E600EC0702FC877 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x205 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E4 DUP3 PUSH2 0x2B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F4 DUP2 PUSH2 0x2D9 JUMP JUMPDEST DUP2 EQ PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x311 DUP2 PUSH2 0x2EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x33C JUMPI PUSH2 0x33B PUSH2 0x317 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH2 0x358 PUSH2 0x31C JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x375 JUMPI PUSH2 0x374 PUSH2 0x321 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x395 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP2 EQ PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3B2 DUP2 PUSH2 0x38C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D2 JUMPI PUSH2 0x3D1 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E0 DUP8 DUP3 DUP9 ADD PUSH2 0x302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401 JUMPI PUSH2 0x400 PUSH2 0x2B4 JUMP JUMPDEST JUMPDEST PUSH2 0x40D DUP8 DUP3 DUP9 ADD PUSH2 0x326 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x420 DUP8 DUP3 DUP9 ADD PUSH2 0x3A3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x435 DUP2 PUSH2 0x2D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x450 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x42C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x456 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x488 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A4 JUMPI PUSH2 0x4A3 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4B2 DUP5 DUP3 DUP6 ADD PUSH2 0x479 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4DF DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4F1 DUP2 PUSH2 0x456 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x50C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP4 DUP6 PUSH2 0x512 JUMP JUMPDEST SWAP4 POP PUSH2 0x545 DUP4 DUP6 DUP5 PUSH2 0x51D JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55E DUP3 DUP5 DUP7 PUSH2 0x52C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C206661696C656420776974686F757420726561736F6E000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B1 PUSH1 0x1A DUP4 PUSH2 0x56A JUMP JUMPDEST SWAP2 POP PUSH2 0x5BC DUP3 PUSH2 0x57B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5E0 DUP2 PUSH2 0x5A4 JUMP JUMPDEST 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 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x615 DUP4 DUP6 PUSH2 0x5E7 JUMP JUMPDEST SWAP4 POP PUSH2 0x622 DUP4 DUP6 DUP5 PUSH2 0x51D JUMP JUMPDEST PUSH2 0x62B DUP4 PUSH2 0x5F8 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x37C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x65A PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x42C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x66D DUP2 DUP6 DUP8 PUSH2 0x609 JUMP JUMPDEST SWAP1 POP PUSH2 0x67C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x636 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE PUSH32 0xD9AD42C7A4B09737147D9F9702B41B1881D758BD9D40DF7C89DF3D4D26026473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"203:1636:33:-:0;;;426:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;534:21;504:27;;:51;;;;;;;;;;;;;;;;;;585:18;565:17;;:38;;;;;;;;;;;;;;;;;;426:184;;203:1636;;88:117:44;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:90::-;879:7;922:5;915:13;908:21;897:32;;845:90;;;:::o;941:116::-;1011:21;1026:5;1011:21;:::i;:::-;1004:5;1001:32;991:60;;1047:1;1044;1037:12;991:60;941:116;:::o;1063:137::-;1117:5;1148:6;1142:13;1133:22;;1164:30;1188:5;1164:30;:::i;:::-;1063:137;;;;:::o;1206:501::-;1282:6;1290;1339:2;1327:9;1318:7;1314:23;1310:32;1307:119;;;1345:79;;:::i;:::-;1307:119;1465:1;1490:64;1546:7;1537:6;1526:9;1522:22;1490:64;:::i;:::-;1480:74;;1436:128;1603:2;1629:61;1682:7;1673:6;1662:9;1658:22;1629:61;:::i;:::-;1619:71;;1574:126;1206:501;;;;;:::o;203:1636:33:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@sendMessage_7390":{"entryPoint":236,"id":7390,"parameterSlots":4,"returnSlots":0},"@setShouldSendMessage_7419":{"entryPoint":572,"id":7419,"parameterSlots":1,"returnSlots":0},"@setXDomainMessageSenderAddress_7409":{"entryPoint":601,"id":7409,"parameterSlots":1,"returnSlots":0},"@shouldSendMessage_7317":{"entryPoint":668,"id":7317,"parameterSlots":0,"returnSlots":0},"@xDomainMessageSender_7399":{"entryPoint":531,"id":7399,"parameterSlots":0,"returnSlots":1},"abi_decode_t_address":{"entryPoint":770,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":1145,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":806,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint32":{"entryPoint":931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint32":{"entryPoint":952,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":1166,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1068,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":1256,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":1545,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1324,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620_to_t_string_memory_ptr_fromStack":{"entryPoint":1444,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":1590,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":1361,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1083,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_calldata_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__fromStack_reversed":{"entryPoint":1605,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":1271,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1479,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":1511,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":1298,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":1386,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":729,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":1110,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":697,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":892,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":1309,"id":null,"parameterSlots":3,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":796,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":791,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":801,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":692,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":687,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1528,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620":{"entryPoint":1403,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":747,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":1122,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":908,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8080:44","nodeType":"YulBlock","src":"0:8080:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"748:87:44","nodeType":"YulBlock","src":"748:87:44","statements":[{"nativeSrc":"758:29:44","nodeType":"YulAssignment","src":"758:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:44","nodeType":"YulIdentifier","src":"780:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:44","nodeType":"YulIdentifier","src":"767:12:44"},"nativeSrc":"767:20:44","nodeType":"YulFunctionCall","src":"767:20:44"},"variableNames":[{"name":"value","nativeSrc":"758:5:44","nodeType":"YulIdentifier","src":"758:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:44","nodeType":"YulIdentifier","src":"823:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:44","nodeType":"YulIdentifier","src":"796:26:44"},"nativeSrc":"796:33:44","nodeType":"YulFunctionCall","src":"796:33:44"},"nativeSrc":"796:33:44","nodeType":"YulExpressionStatement","src":"796:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:44","nodeType":"YulTypedName","src":"726:6:44","type":""},{"name":"end","nativeSrc":"734:3:44","nodeType":"YulTypedName","src":"734:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:44","nodeType":"YulTypedName","src":"742:5:44","type":""}],"src":"696:139:44"},{"body":{"nativeSrc":"930:28:44","nodeType":"YulBlock","src":"930:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"947:1:44","nodeType":"YulLiteral","src":"947:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"950:1:44","nodeType":"YulLiteral","src":"950:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"940:6:44","nodeType":"YulIdentifier","src":"940:6:44"},"nativeSrc":"940:12:44","nodeType":"YulFunctionCall","src":"940:12:44"},"nativeSrc":"940:12:44","nodeType":"YulExpressionStatement","src":"940:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"841:117:44","nodeType":"YulFunctionDefinition","src":"841:117:44"},{"body":{"nativeSrc":"1053:28:44","nodeType":"YulBlock","src":"1053:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1070:1:44","nodeType":"YulLiteral","src":"1070:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1073:1:44","nodeType":"YulLiteral","src":"1073:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1063:6:44","nodeType":"YulIdentifier","src":"1063:6:44"},"nativeSrc":"1063:12:44","nodeType":"YulFunctionCall","src":"1063:12:44"},"nativeSrc":"1063:12:44","nodeType":"YulExpressionStatement","src":"1063:12:44"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"964:117:44","nodeType":"YulFunctionDefinition","src":"964:117:44"},{"body":{"nativeSrc":"1176:28:44","nodeType":"YulBlock","src":"1176:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1193:1:44","nodeType":"YulLiteral","src":"1193:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1196:1:44","nodeType":"YulLiteral","src":"1196:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1186:6:44","nodeType":"YulIdentifier","src":"1186:6:44"},"nativeSrc":"1186:12:44","nodeType":"YulFunctionCall","src":"1186:12:44"},"nativeSrc":"1186:12:44","nodeType":"YulExpressionStatement","src":"1186:12:44"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1087:117:44","nodeType":"YulFunctionDefinition","src":"1087:117:44"},{"body":{"nativeSrc":"1297:478:44","nodeType":"YulBlock","src":"1297:478:44","statements":[{"body":{"nativeSrc":"1346:83:44","nodeType":"YulBlock","src":"1346:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1348:77:44","nodeType":"YulIdentifier","src":"1348:77:44"},"nativeSrc":"1348:79:44","nodeType":"YulFunctionCall","src":"1348:79:44"},"nativeSrc":"1348:79:44","nodeType":"YulExpressionStatement","src":"1348:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1325:6:44","nodeType":"YulIdentifier","src":"1325:6:44"},{"kind":"number","nativeSrc":"1333:4:44","nodeType":"YulLiteral","src":"1333:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1321:3:44","nodeType":"YulIdentifier","src":"1321:3:44"},"nativeSrc":"1321:17:44","nodeType":"YulFunctionCall","src":"1321:17:44"},{"name":"end","nativeSrc":"1340:3:44","nodeType":"YulIdentifier","src":"1340:3:44"}],"functionName":{"name":"slt","nativeSrc":"1317:3:44","nodeType":"YulIdentifier","src":"1317:3:44"},"nativeSrc":"1317:27:44","nodeType":"YulFunctionCall","src":"1317:27:44"}],"functionName":{"name":"iszero","nativeSrc":"1310:6:44","nodeType":"YulIdentifier","src":"1310:6:44"},"nativeSrc":"1310:35:44","nodeType":"YulFunctionCall","src":"1310:35:44"},"nativeSrc":"1307:122:44","nodeType":"YulIf","src":"1307:122:44"},{"nativeSrc":"1438:30:44","nodeType":"YulAssignment","src":"1438:30:44","value":{"arguments":[{"name":"offset","nativeSrc":"1461:6:44","nodeType":"YulIdentifier","src":"1461:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1448:12:44","nodeType":"YulIdentifier","src":"1448:12:44"},"nativeSrc":"1448:20:44","nodeType":"YulFunctionCall","src":"1448:20:44"},"variableNames":[{"name":"length","nativeSrc":"1438:6:44","nodeType":"YulIdentifier","src":"1438:6:44"}]},{"body":{"nativeSrc":"1511:83:44","nodeType":"YulBlock","src":"1511:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1513:77:44","nodeType":"YulIdentifier","src":"1513:77:44"},"nativeSrc":"1513:79:44","nodeType":"YulFunctionCall","src":"1513:79:44"},"nativeSrc":"1513:79:44","nodeType":"YulExpressionStatement","src":"1513:79:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1483:6:44","nodeType":"YulIdentifier","src":"1483:6:44"},{"kind":"number","nativeSrc":"1491:18:44","nodeType":"YulLiteral","src":"1491:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1480:2:44","nodeType":"YulIdentifier","src":"1480:2:44"},"nativeSrc":"1480:30:44","nodeType":"YulFunctionCall","src":"1480:30:44"},"nativeSrc":"1477:117:44","nodeType":"YulIf","src":"1477:117:44"},{"nativeSrc":"1603:29:44","nodeType":"YulAssignment","src":"1603:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1619:6:44","nodeType":"YulIdentifier","src":"1619:6:44"},{"kind":"number","nativeSrc":"1627:4:44","nodeType":"YulLiteral","src":"1627:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1615:3:44","nodeType":"YulIdentifier","src":"1615:3:44"},"nativeSrc":"1615:17:44","nodeType":"YulFunctionCall","src":"1615:17:44"},"variableNames":[{"name":"arrayPos","nativeSrc":"1603:8:44","nodeType":"YulIdentifier","src":"1603:8:44"}]},{"body":{"nativeSrc":"1686:83:44","nodeType":"YulBlock","src":"1686:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1688:77:44","nodeType":"YulIdentifier","src":"1688:77:44"},"nativeSrc":"1688:79:44","nodeType":"YulFunctionCall","src":"1688:79:44"},"nativeSrc":"1688:79:44","nodeType":"YulExpressionStatement","src":"1688:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"1651:8:44","nodeType":"YulIdentifier","src":"1651:8:44"},{"arguments":[{"name":"length","nativeSrc":"1665:6:44","nodeType":"YulIdentifier","src":"1665:6:44"},{"kind":"number","nativeSrc":"1673:4:44","nodeType":"YulLiteral","src":"1673:4:44","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"1661:3:44","nodeType":"YulIdentifier","src":"1661:3:44"},"nativeSrc":"1661:17:44","nodeType":"YulFunctionCall","src":"1661:17:44"}],"functionName":{"name":"add","nativeSrc":"1647:3:44","nodeType":"YulIdentifier","src":"1647:3:44"},"nativeSrc":"1647:32:44","nodeType":"YulFunctionCall","src":"1647:32:44"},{"name":"end","nativeSrc":"1681:3:44","nodeType":"YulIdentifier","src":"1681:3:44"}],"functionName":{"name":"gt","nativeSrc":"1644:2:44","nodeType":"YulIdentifier","src":"1644:2:44"},"nativeSrc":"1644:41:44","nodeType":"YulFunctionCall","src":"1644:41:44"},"nativeSrc":"1641:128:44","nodeType":"YulIf","src":"1641:128:44"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1223:552:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1264:6:44","nodeType":"YulTypedName","src":"1264:6:44","type":""},{"name":"end","nativeSrc":"1272:3:44","nodeType":"YulTypedName","src":"1272:3:44","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1280:8:44","nodeType":"YulTypedName","src":"1280:8:44","type":""},{"name":"length","nativeSrc":"1290:6:44","nodeType":"YulTypedName","src":"1290:6:44","type":""}],"src":"1223:552:44"},{"body":{"nativeSrc":"1825:49:44","nodeType":"YulBlock","src":"1825:49:44","statements":[{"nativeSrc":"1835:33:44","nodeType":"YulAssignment","src":"1835:33:44","value":{"arguments":[{"name":"value","nativeSrc":"1850:5:44","nodeType":"YulIdentifier","src":"1850:5:44"},{"kind":"number","nativeSrc":"1857:10:44","nodeType":"YulLiteral","src":"1857:10:44","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"1846:3:44","nodeType":"YulIdentifier","src":"1846:3:44"},"nativeSrc":"1846:22:44","nodeType":"YulFunctionCall","src":"1846:22:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1835:7:44","nodeType":"YulIdentifier","src":"1835:7:44"}]}]},"name":"cleanup_t_uint32","nativeSrc":"1781:93:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1807:5:44","nodeType":"YulTypedName","src":"1807:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1817:7:44","nodeType":"YulTypedName","src":"1817:7:44","type":""}],"src":"1781:93:44"},{"body":{"nativeSrc":"1922:78:44","nodeType":"YulBlock","src":"1922:78:44","statements":[{"body":{"nativeSrc":"1978:16:44","nodeType":"YulBlock","src":"1978:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1987:1:44","nodeType":"YulLiteral","src":"1987:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1990:1:44","nodeType":"YulLiteral","src":"1990:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1980:6:44","nodeType":"YulIdentifier","src":"1980:6:44"},"nativeSrc":"1980:12:44","nodeType":"YulFunctionCall","src":"1980:12:44"},"nativeSrc":"1980:12:44","nodeType":"YulExpressionStatement","src":"1980:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1945:5:44","nodeType":"YulIdentifier","src":"1945:5:44"},{"arguments":[{"name":"value","nativeSrc":"1969:5:44","nodeType":"YulIdentifier","src":"1969:5:44"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"1952:16:44","nodeType":"YulIdentifier","src":"1952:16:44"},"nativeSrc":"1952:23:44","nodeType":"YulFunctionCall","src":"1952:23:44"}],"functionName":{"name":"eq","nativeSrc":"1942:2:44","nodeType":"YulIdentifier","src":"1942:2:44"},"nativeSrc":"1942:34:44","nodeType":"YulFunctionCall","src":"1942:34:44"}],"functionName":{"name":"iszero","nativeSrc":"1935:6:44","nodeType":"YulIdentifier","src":"1935:6:44"},"nativeSrc":"1935:42:44","nodeType":"YulFunctionCall","src":"1935:42:44"},"nativeSrc":"1932:62:44","nodeType":"YulIf","src":"1932:62:44"}]},"name":"validator_revert_t_uint32","nativeSrc":"1880:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1915:5:44","nodeType":"YulTypedName","src":"1915:5:44","type":""}],"src":"1880:120:44"},{"body":{"nativeSrc":"2057:86:44","nodeType":"YulBlock","src":"2057:86:44","statements":[{"nativeSrc":"2067:29:44","nodeType":"YulAssignment","src":"2067:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"2089:6:44","nodeType":"YulIdentifier","src":"2089:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"2076:12:44","nodeType":"YulIdentifier","src":"2076:12:44"},"nativeSrc":"2076:20:44","nodeType":"YulFunctionCall","src":"2076:20:44"},"variableNames":[{"name":"value","nativeSrc":"2067:5:44","nodeType":"YulIdentifier","src":"2067:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2131:5:44","nodeType":"YulIdentifier","src":"2131:5:44"}],"functionName":{"name":"validator_revert_t_uint32","nativeSrc":"2105:25:44","nodeType":"YulIdentifier","src":"2105:25:44"},"nativeSrc":"2105:32:44","nodeType":"YulFunctionCall","src":"2105:32:44"},"nativeSrc":"2105:32:44","nodeType":"YulExpressionStatement","src":"2105:32:44"}]},"name":"abi_decode_t_uint32","nativeSrc":"2006:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2035:6:44","nodeType":"YulTypedName","src":"2035:6:44","type":""},{"name":"end","nativeSrc":"2043:3:44","nodeType":"YulTypedName","src":"2043:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2051:5:44","nodeType":"YulTypedName","src":"2051:5:44","type":""}],"src":"2006:137:44"},{"body":{"nativeSrc":"2267:697:44","nodeType":"YulBlock","src":"2267:697:44","statements":[{"body":{"nativeSrc":"2313:83:44","nodeType":"YulBlock","src":"2313:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2315:77:44","nodeType":"YulIdentifier","src":"2315:77:44"},"nativeSrc":"2315:79:44","nodeType":"YulFunctionCall","src":"2315:79:44"},"nativeSrc":"2315:79:44","nodeType":"YulExpressionStatement","src":"2315:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2288:7:44","nodeType":"YulIdentifier","src":"2288:7:44"},{"name":"headStart","nativeSrc":"2297:9:44","nodeType":"YulIdentifier","src":"2297:9:44"}],"functionName":{"name":"sub","nativeSrc":"2284:3:44","nodeType":"YulIdentifier","src":"2284:3:44"},"nativeSrc":"2284:23:44","nodeType":"YulFunctionCall","src":"2284:23:44"},{"kind":"number","nativeSrc":"2309:2:44","nodeType":"YulLiteral","src":"2309:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2280:3:44","nodeType":"YulIdentifier","src":"2280:3:44"},"nativeSrc":"2280:32:44","nodeType":"YulFunctionCall","src":"2280:32:44"},"nativeSrc":"2277:119:44","nodeType":"YulIf","src":"2277:119:44"},{"nativeSrc":"2406:117:44","nodeType":"YulBlock","src":"2406:117:44","statements":[{"nativeSrc":"2421:15:44","nodeType":"YulVariableDeclaration","src":"2421:15:44","value":{"kind":"number","nativeSrc":"2435:1:44","nodeType":"YulLiteral","src":"2435:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2425:6:44","nodeType":"YulTypedName","src":"2425:6:44","type":""}]},{"nativeSrc":"2450:63:44","nodeType":"YulAssignment","src":"2450:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2485:9:44","nodeType":"YulIdentifier","src":"2485:9:44"},{"name":"offset","nativeSrc":"2496:6:44","nodeType":"YulIdentifier","src":"2496:6:44"}],"functionName":{"name":"add","nativeSrc":"2481:3:44","nodeType":"YulIdentifier","src":"2481:3:44"},"nativeSrc":"2481:22:44","nodeType":"YulFunctionCall","src":"2481:22:44"},{"name":"dataEnd","nativeSrc":"2505:7:44","nodeType":"YulIdentifier","src":"2505:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2460:20:44","nodeType":"YulIdentifier","src":"2460:20:44"},"nativeSrc":"2460:53:44","nodeType":"YulFunctionCall","src":"2460:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2450:6:44","nodeType":"YulIdentifier","src":"2450:6:44"}]}]},{"nativeSrc":"2533:297:44","nodeType":"YulBlock","src":"2533:297:44","statements":[{"nativeSrc":"2548:46:44","nodeType":"YulVariableDeclaration","src":"2548:46:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2579:9:44","nodeType":"YulIdentifier","src":"2579:9:44"},{"kind":"number","nativeSrc":"2590:2:44","nodeType":"YulLiteral","src":"2590:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2575:3:44","nodeType":"YulIdentifier","src":"2575:3:44"},"nativeSrc":"2575:18:44","nodeType":"YulFunctionCall","src":"2575:18:44"}],"functionName":{"name":"calldataload","nativeSrc":"2562:12:44","nodeType":"YulIdentifier","src":"2562:12:44"},"nativeSrc":"2562:32:44","nodeType":"YulFunctionCall","src":"2562:32:44"},"variables":[{"name":"offset","nativeSrc":"2552:6:44","nodeType":"YulTypedName","src":"2552:6:44","type":""}]},{"body":{"nativeSrc":"2641:83:44","nodeType":"YulBlock","src":"2641:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2643:77:44","nodeType":"YulIdentifier","src":"2643:77:44"},"nativeSrc":"2643:79:44","nodeType":"YulFunctionCall","src":"2643:79:44"},"nativeSrc":"2643:79:44","nodeType":"YulExpressionStatement","src":"2643:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2613:6:44","nodeType":"YulIdentifier","src":"2613:6:44"},{"kind":"number","nativeSrc":"2621:18:44","nodeType":"YulLiteral","src":"2621:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2610:2:44","nodeType":"YulIdentifier","src":"2610:2:44"},"nativeSrc":"2610:30:44","nodeType":"YulFunctionCall","src":"2610:30:44"},"nativeSrc":"2607:117:44","nodeType":"YulIf","src":"2607:117:44"},{"nativeSrc":"2738:82:44","nodeType":"YulAssignment","src":"2738:82:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2792:9:44","nodeType":"YulIdentifier","src":"2792:9:44"},{"name":"offset","nativeSrc":"2803:6:44","nodeType":"YulIdentifier","src":"2803:6:44"}],"functionName":{"name":"add","nativeSrc":"2788:3:44","nodeType":"YulIdentifier","src":"2788:3:44"},"nativeSrc":"2788:22:44","nodeType":"YulFunctionCall","src":"2788:22:44"},{"name":"dataEnd","nativeSrc":"2812:7:44","nodeType":"YulIdentifier","src":"2812:7:44"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2756:31:44","nodeType":"YulIdentifier","src":"2756:31:44"},"nativeSrc":"2756:64:44","nodeType":"YulFunctionCall","src":"2756:64:44"},"variableNames":[{"name":"value1","nativeSrc":"2738:6:44","nodeType":"YulIdentifier","src":"2738:6:44"},{"name":"value2","nativeSrc":"2746:6:44","nodeType":"YulIdentifier","src":"2746:6:44"}]}]},{"nativeSrc":"2840:117:44","nodeType":"YulBlock","src":"2840:117:44","statements":[{"nativeSrc":"2855:16:44","nodeType":"YulVariableDeclaration","src":"2855:16:44","value":{"kind":"number","nativeSrc":"2869:2:44","nodeType":"YulLiteral","src":"2869:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2859:6:44","nodeType":"YulTypedName","src":"2859:6:44","type":""}]},{"nativeSrc":"2885:62:44","nodeType":"YulAssignment","src":"2885:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2919:9:44","nodeType":"YulIdentifier","src":"2919:9:44"},{"name":"offset","nativeSrc":"2930:6:44","nodeType":"YulIdentifier","src":"2930:6:44"}],"functionName":{"name":"add","nativeSrc":"2915:3:44","nodeType":"YulIdentifier","src":"2915:3:44"},"nativeSrc":"2915:22:44","nodeType":"YulFunctionCall","src":"2915:22:44"},{"name":"dataEnd","nativeSrc":"2939:7:44","nodeType":"YulIdentifier","src":"2939:7:44"}],"functionName":{"name":"abi_decode_t_uint32","nativeSrc":"2895:19:44","nodeType":"YulIdentifier","src":"2895:19:44"},"nativeSrc":"2895:52:44","nodeType":"YulFunctionCall","src":"2895:52:44"},"variableNames":[{"name":"value3","nativeSrc":"2885:6:44","nodeType":"YulIdentifier","src":"2885:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint32","nativeSrc":"2149:815:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2213:9:44","nodeType":"YulTypedName","src":"2213:9:44","type":""},{"name":"dataEnd","nativeSrc":"2224:7:44","nodeType":"YulTypedName","src":"2224:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2236:6:44","nodeType":"YulTypedName","src":"2236:6:44","type":""},{"name":"value1","nativeSrc":"2244:6:44","nodeType":"YulTypedName","src":"2244:6:44","type":""},{"name":"value2","nativeSrc":"2252:6:44","nodeType":"YulTypedName","src":"2252:6:44","type":""},{"name":"value3","nativeSrc":"2260:6:44","nodeType":"YulTypedName","src":"2260:6:44","type":""}],"src":"2149:815:44"},{"body":{"nativeSrc":"3035:53:44","nodeType":"YulBlock","src":"3035:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3052:3:44","nodeType":"YulIdentifier","src":"3052:3:44"},{"arguments":[{"name":"value","nativeSrc":"3075:5:44","nodeType":"YulIdentifier","src":"3075:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3057:17:44","nodeType":"YulIdentifier","src":"3057:17:44"},"nativeSrc":"3057:24:44","nodeType":"YulFunctionCall","src":"3057:24:44"}],"functionName":{"name":"mstore","nativeSrc":"3045:6:44","nodeType":"YulIdentifier","src":"3045:6:44"},"nativeSrc":"3045:37:44","nodeType":"YulFunctionCall","src":"3045:37:44"},"nativeSrc":"3045:37:44","nodeType":"YulExpressionStatement","src":"3045:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2970:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3023:5:44","nodeType":"YulTypedName","src":"3023:5:44","type":""},{"name":"pos","nativeSrc":"3030:3:44","nodeType":"YulTypedName","src":"3030:3:44","type":""}],"src":"2970:118:44"},{"body":{"nativeSrc":"3192:124:44","nodeType":"YulBlock","src":"3192:124:44","statements":[{"nativeSrc":"3202:26:44","nodeType":"YulAssignment","src":"3202:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"3214:9:44","nodeType":"YulIdentifier","src":"3214:9:44"},{"kind":"number","nativeSrc":"3225:2:44","nodeType":"YulLiteral","src":"3225:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3210:3:44","nodeType":"YulIdentifier","src":"3210:3:44"},"nativeSrc":"3210:18:44","nodeType":"YulFunctionCall","src":"3210:18:44"},"variableNames":[{"name":"tail","nativeSrc":"3202:4:44","nodeType":"YulIdentifier","src":"3202:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3282:6:44","nodeType":"YulIdentifier","src":"3282:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3295:9:44","nodeType":"YulIdentifier","src":"3295:9:44"},{"kind":"number","nativeSrc":"3306:1:44","nodeType":"YulLiteral","src":"3306:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3291:3:44","nodeType":"YulIdentifier","src":"3291:3:44"},"nativeSrc":"3291:17:44","nodeType":"YulFunctionCall","src":"3291:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3238:43:44","nodeType":"YulIdentifier","src":"3238:43:44"},"nativeSrc":"3238:71:44","nodeType":"YulFunctionCall","src":"3238:71:44"},"nativeSrc":"3238:71:44","nodeType":"YulExpressionStatement","src":"3238:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3094:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3164:9:44","nodeType":"YulTypedName","src":"3164:9:44","type":""},{"name":"value0","nativeSrc":"3176:6:44","nodeType":"YulTypedName","src":"3176:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3187:4:44","nodeType":"YulTypedName","src":"3187:4:44","type":""}],"src":"3094:222:44"},{"body":{"nativeSrc":"3364:48:44","nodeType":"YulBlock","src":"3364:48:44","statements":[{"nativeSrc":"3374:32:44","nodeType":"YulAssignment","src":"3374:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3399:5:44","nodeType":"YulIdentifier","src":"3399:5:44"}],"functionName":{"name":"iszero","nativeSrc":"3392:6:44","nodeType":"YulIdentifier","src":"3392:6:44"},"nativeSrc":"3392:13:44","nodeType":"YulFunctionCall","src":"3392:13:44"}],"functionName":{"name":"iszero","nativeSrc":"3385:6:44","nodeType":"YulIdentifier","src":"3385:6:44"},"nativeSrc":"3385:21:44","nodeType":"YulFunctionCall","src":"3385:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3374:7:44","nodeType":"YulIdentifier","src":"3374:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"3322:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3346:5:44","nodeType":"YulTypedName","src":"3346:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3356:7:44","nodeType":"YulTypedName","src":"3356:7:44","type":""}],"src":"3322:90:44"},{"body":{"nativeSrc":"3458:76:44","nodeType":"YulBlock","src":"3458:76:44","statements":[{"body":{"nativeSrc":"3512:16:44","nodeType":"YulBlock","src":"3512:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3521:1:44","nodeType":"YulLiteral","src":"3521:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3524:1:44","nodeType":"YulLiteral","src":"3524:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3514:6:44","nodeType":"YulIdentifier","src":"3514:6:44"},"nativeSrc":"3514:12:44","nodeType":"YulFunctionCall","src":"3514:12:44"},"nativeSrc":"3514:12:44","nodeType":"YulExpressionStatement","src":"3514:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3481:5:44","nodeType":"YulIdentifier","src":"3481:5:44"},{"arguments":[{"name":"value","nativeSrc":"3503:5:44","nodeType":"YulIdentifier","src":"3503:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3488:14:44","nodeType":"YulIdentifier","src":"3488:14:44"},"nativeSrc":"3488:21:44","nodeType":"YulFunctionCall","src":"3488:21:44"}],"functionName":{"name":"eq","nativeSrc":"3478:2:44","nodeType":"YulIdentifier","src":"3478:2:44"},"nativeSrc":"3478:32:44","nodeType":"YulFunctionCall","src":"3478:32:44"}],"functionName":{"name":"iszero","nativeSrc":"3471:6:44","nodeType":"YulIdentifier","src":"3471:6:44"},"nativeSrc":"3471:40:44","nodeType":"YulFunctionCall","src":"3471:40:44"},"nativeSrc":"3468:60:44","nodeType":"YulIf","src":"3468:60:44"}]},"name":"validator_revert_t_bool","nativeSrc":"3418:116:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3451:5:44","nodeType":"YulTypedName","src":"3451:5:44","type":""}],"src":"3418:116:44"},{"body":{"nativeSrc":"3589:84:44","nodeType":"YulBlock","src":"3589:84:44","statements":[{"nativeSrc":"3599:29:44","nodeType":"YulAssignment","src":"3599:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3621:6:44","nodeType":"YulIdentifier","src":"3621:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3608:12:44","nodeType":"YulIdentifier","src":"3608:12:44"},"nativeSrc":"3608:20:44","nodeType":"YulFunctionCall","src":"3608:20:44"},"variableNames":[{"name":"value","nativeSrc":"3599:5:44","nodeType":"YulIdentifier","src":"3599:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3661:5:44","nodeType":"YulIdentifier","src":"3661:5:44"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"3637:23:44","nodeType":"YulIdentifier","src":"3637:23:44"},"nativeSrc":"3637:30:44","nodeType":"YulFunctionCall","src":"3637:30:44"},"nativeSrc":"3637:30:44","nodeType":"YulExpressionStatement","src":"3637:30:44"}]},"name":"abi_decode_t_bool","nativeSrc":"3540:133:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3567:6:44","nodeType":"YulTypedName","src":"3567:6:44","type":""},{"name":"end","nativeSrc":"3575:3:44","nodeType":"YulTypedName","src":"3575:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3583:5:44","nodeType":"YulTypedName","src":"3583:5:44","type":""}],"src":"3540:133:44"},{"body":{"nativeSrc":"3742:260:44","nodeType":"YulBlock","src":"3742:260:44","statements":[{"body":{"nativeSrc":"3788:83:44","nodeType":"YulBlock","src":"3788:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3790:77:44","nodeType":"YulIdentifier","src":"3790:77:44"},"nativeSrc":"3790:79:44","nodeType":"YulFunctionCall","src":"3790:79:44"},"nativeSrc":"3790:79:44","nodeType":"YulExpressionStatement","src":"3790:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3763:7:44","nodeType":"YulIdentifier","src":"3763:7:44"},{"name":"headStart","nativeSrc":"3772:9:44","nodeType":"YulIdentifier","src":"3772:9:44"}],"functionName":{"name":"sub","nativeSrc":"3759:3:44","nodeType":"YulIdentifier","src":"3759:3:44"},"nativeSrc":"3759:23:44","nodeType":"YulFunctionCall","src":"3759:23:44"},{"kind":"number","nativeSrc":"3784:2:44","nodeType":"YulLiteral","src":"3784:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3755:3:44","nodeType":"YulIdentifier","src":"3755:3:44"},"nativeSrc":"3755:32:44","nodeType":"YulFunctionCall","src":"3755:32:44"},"nativeSrc":"3752:119:44","nodeType":"YulIf","src":"3752:119:44"},{"nativeSrc":"3881:114:44","nodeType":"YulBlock","src":"3881:114:44","statements":[{"nativeSrc":"3896:15:44","nodeType":"YulVariableDeclaration","src":"3896:15:44","value":{"kind":"number","nativeSrc":"3910:1:44","nodeType":"YulLiteral","src":"3910:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3900:6:44","nodeType":"YulTypedName","src":"3900:6:44","type":""}]},{"nativeSrc":"3925:60:44","nodeType":"YulAssignment","src":"3925:60:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3957:9:44","nodeType":"YulIdentifier","src":"3957:9:44"},{"name":"offset","nativeSrc":"3968:6:44","nodeType":"YulIdentifier","src":"3968:6:44"}],"functionName":{"name":"add","nativeSrc":"3953:3:44","nodeType":"YulIdentifier","src":"3953:3:44"},"nativeSrc":"3953:22:44","nodeType":"YulFunctionCall","src":"3953:22:44"},{"name":"dataEnd","nativeSrc":"3977:7:44","nodeType":"YulIdentifier","src":"3977:7:44"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"3935:17:44","nodeType":"YulIdentifier","src":"3935:17:44"},"nativeSrc":"3935:50:44","nodeType":"YulFunctionCall","src":"3935:50:44"},"variableNames":[{"name":"value0","nativeSrc":"3925:6:44","nodeType":"YulIdentifier","src":"3925:6:44"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"3679:323:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3712:9:44","nodeType":"YulTypedName","src":"3712:9:44","type":""},{"name":"dataEnd","nativeSrc":"3723:7:44","nodeType":"YulTypedName","src":"3723:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3735:6:44","nodeType":"YulTypedName","src":"3735:6:44","type":""}],"src":"3679:323:44"},{"body":{"nativeSrc":"4074:263:44","nodeType":"YulBlock","src":"4074:263:44","statements":[{"body":{"nativeSrc":"4120:83:44","nodeType":"YulBlock","src":"4120:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4122:77:44","nodeType":"YulIdentifier","src":"4122:77:44"},"nativeSrc":"4122:79:44","nodeType":"YulFunctionCall","src":"4122:79:44"},"nativeSrc":"4122:79:44","nodeType":"YulExpressionStatement","src":"4122:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4095:7:44","nodeType":"YulIdentifier","src":"4095:7:44"},{"name":"headStart","nativeSrc":"4104:9:44","nodeType":"YulIdentifier","src":"4104:9:44"}],"functionName":{"name":"sub","nativeSrc":"4091:3:44","nodeType":"YulIdentifier","src":"4091:3:44"},"nativeSrc":"4091:23:44","nodeType":"YulFunctionCall","src":"4091:23:44"},{"kind":"number","nativeSrc":"4116:2:44","nodeType":"YulLiteral","src":"4116:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4087:3:44","nodeType":"YulIdentifier","src":"4087:3:44"},"nativeSrc":"4087:32:44","nodeType":"YulFunctionCall","src":"4087:32:44"},"nativeSrc":"4084:119:44","nodeType":"YulIf","src":"4084:119:44"},{"nativeSrc":"4213:117:44","nodeType":"YulBlock","src":"4213:117:44","statements":[{"nativeSrc":"4228:15:44","nodeType":"YulVariableDeclaration","src":"4228:15:44","value":{"kind":"number","nativeSrc":"4242:1:44","nodeType":"YulLiteral","src":"4242:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4232:6:44","nodeType":"YulTypedName","src":"4232:6:44","type":""}]},{"nativeSrc":"4257:63:44","nodeType":"YulAssignment","src":"4257:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4292:9:44","nodeType":"YulIdentifier","src":"4292:9:44"},{"name":"offset","nativeSrc":"4303:6:44","nodeType":"YulIdentifier","src":"4303:6:44"}],"functionName":{"name":"add","nativeSrc":"4288:3:44","nodeType":"YulIdentifier","src":"4288:3:44"},"nativeSrc":"4288:22:44","nodeType":"YulFunctionCall","src":"4288:22:44"},{"name":"dataEnd","nativeSrc":"4312:7:44","nodeType":"YulIdentifier","src":"4312:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4267:20:44","nodeType":"YulIdentifier","src":"4267:20:44"},"nativeSrc":"4267:53:44","nodeType":"YulFunctionCall","src":"4267:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4257:6:44","nodeType":"YulIdentifier","src":"4257:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4008:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4044:9:44","nodeType":"YulTypedName","src":"4044:9:44","type":""},{"name":"dataEnd","nativeSrc":"4055:7:44","nodeType":"YulTypedName","src":"4055:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4067:6:44","nodeType":"YulTypedName","src":"4067:6:44","type":""}],"src":"4008:329:44"},{"body":{"nativeSrc":"4402:50:44","nodeType":"YulBlock","src":"4402:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4419:3:44","nodeType":"YulIdentifier","src":"4419:3:44"},{"arguments":[{"name":"value","nativeSrc":"4439:5:44","nodeType":"YulIdentifier","src":"4439:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"4424:14:44","nodeType":"YulIdentifier","src":"4424:14:44"},"nativeSrc":"4424:21:44","nodeType":"YulFunctionCall","src":"4424:21:44"}],"functionName":{"name":"mstore","nativeSrc":"4412:6:44","nodeType":"YulIdentifier","src":"4412:6:44"},"nativeSrc":"4412:34:44","nodeType":"YulFunctionCall","src":"4412:34:44"},"nativeSrc":"4412:34:44","nodeType":"YulExpressionStatement","src":"4412:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4343:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4390:5:44","nodeType":"YulTypedName","src":"4390:5:44","type":""},{"name":"pos","nativeSrc":"4397:3:44","nodeType":"YulTypedName","src":"4397:3:44","type":""}],"src":"4343:109:44"},{"body":{"nativeSrc":"4550:118:44","nodeType":"YulBlock","src":"4550:118:44","statements":[{"nativeSrc":"4560:26:44","nodeType":"YulAssignment","src":"4560:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4572:9:44","nodeType":"YulIdentifier","src":"4572:9:44"},{"kind":"number","nativeSrc":"4583:2:44","nodeType":"YulLiteral","src":"4583:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4568:3:44","nodeType":"YulIdentifier","src":"4568:3:44"},"nativeSrc":"4568:18:44","nodeType":"YulFunctionCall","src":"4568:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4560:4:44","nodeType":"YulIdentifier","src":"4560:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4634:6:44","nodeType":"YulIdentifier","src":"4634:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4647:9:44","nodeType":"YulIdentifier","src":"4647:9:44"},{"kind":"number","nativeSrc":"4658:1:44","nodeType":"YulLiteral","src":"4658:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4643:3:44","nodeType":"YulIdentifier","src":"4643:3:44"},"nativeSrc":"4643:17:44","nodeType":"YulFunctionCall","src":"4643:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4596:37:44","nodeType":"YulIdentifier","src":"4596:37:44"},"nativeSrc":"4596:65:44","nodeType":"YulFunctionCall","src":"4596:65:44"},"nativeSrc":"4596:65:44","nodeType":"YulExpressionStatement","src":"4596:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"4458:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4522:9:44","nodeType":"YulTypedName","src":"4522:9:44","type":""},{"name":"value0","nativeSrc":"4534:6:44","nodeType":"YulTypedName","src":"4534:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4545:4:44","nodeType":"YulTypedName","src":"4545:4:44","type":""}],"src":"4458:210:44"},{"body":{"nativeSrc":"4787:34:44","nodeType":"YulBlock","src":"4787:34:44","statements":[{"nativeSrc":"4797:18:44","nodeType":"YulAssignment","src":"4797:18:44","value":{"name":"pos","nativeSrc":"4812:3:44","nodeType":"YulIdentifier","src":"4812:3:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"4797:11:44","nodeType":"YulIdentifier","src":"4797:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"4674:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4759:3:44","nodeType":"YulTypedName","src":"4759:3:44","type":""},{"name":"length","nativeSrc":"4764:6:44","nodeType":"YulTypedName","src":"4764:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4775:11:44","nodeType":"YulTypedName","src":"4775:11:44","type":""}],"src":"4674:147:44"},{"body":{"nativeSrc":"4891:84:44","nodeType":"YulBlock","src":"4891:84:44","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4915:3:44","nodeType":"YulIdentifier","src":"4915:3:44"},{"name":"src","nativeSrc":"4920:3:44","nodeType":"YulIdentifier","src":"4920:3:44"},{"name":"length","nativeSrc":"4925:6:44","nodeType":"YulIdentifier","src":"4925:6:44"}],"functionName":{"name":"calldatacopy","nativeSrc":"4902:12:44","nodeType":"YulIdentifier","src":"4902:12:44"},"nativeSrc":"4902:30:44","nodeType":"YulFunctionCall","src":"4902:30:44"},"nativeSrc":"4902:30:44","nodeType":"YulExpressionStatement","src":"4902:30:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4952:3:44","nodeType":"YulIdentifier","src":"4952:3:44"},{"name":"length","nativeSrc":"4957:6:44","nodeType":"YulIdentifier","src":"4957:6:44"}],"functionName":{"name":"add","nativeSrc":"4948:3:44","nodeType":"YulIdentifier","src":"4948:3:44"},"nativeSrc":"4948:16:44","nodeType":"YulFunctionCall","src":"4948:16:44"},{"kind":"number","nativeSrc":"4966:1:44","nodeType":"YulLiteral","src":"4966:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4941:6:44","nodeType":"YulIdentifier","src":"4941:6:44"},"nativeSrc":"4941:27:44","nodeType":"YulFunctionCall","src":"4941:27:44"},"nativeSrc":"4941:27:44","nodeType":"YulExpressionStatement","src":"4941:27:44"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4827:148:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4873:3:44","nodeType":"YulTypedName","src":"4873:3:44","type":""},{"name":"dst","nativeSrc":"4878:3:44","nodeType":"YulTypedName","src":"4878:3:44","type":""},{"name":"length","nativeSrc":"4883:6:44","nodeType":"YulTypedName","src":"4883:6:44","type":""}],"src":"4827:148:44"},{"body":{"nativeSrc":"5121:209:44","nodeType":"YulBlock","src":"5121:209:44","statements":[{"nativeSrc":"5131:95:44","nodeType":"YulAssignment","src":"5131:95:44","value":{"arguments":[{"name":"pos","nativeSrc":"5214:3:44","nodeType":"YulIdentifier","src":"5214:3:44"},{"name":"length","nativeSrc":"5219:6:44","nodeType":"YulIdentifier","src":"5219:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5138:75:44","nodeType":"YulIdentifier","src":"5138:75:44"},"nativeSrc":"5138:88:44","nodeType":"YulFunctionCall","src":"5138:88:44"},"variableNames":[{"name":"pos","nativeSrc":"5131:3:44","nodeType":"YulIdentifier","src":"5131:3:44"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"5273:5:44","nodeType":"YulIdentifier","src":"5273:5:44"},{"name":"pos","nativeSrc":"5280:3:44","nodeType":"YulIdentifier","src":"5280:3:44"},{"name":"length","nativeSrc":"5285:6:44","nodeType":"YulIdentifier","src":"5285:6:44"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"5236:36:44","nodeType":"YulIdentifier","src":"5236:36:44"},"nativeSrc":"5236:56:44","nodeType":"YulFunctionCall","src":"5236:56:44"},"nativeSrc":"5236:56:44","nodeType":"YulExpressionStatement","src":"5236:56:44"},{"nativeSrc":"5301:23:44","nodeType":"YulAssignment","src":"5301:23:44","value":{"arguments":[{"name":"pos","nativeSrc":"5312:3:44","nodeType":"YulIdentifier","src":"5312:3:44"},{"name":"length","nativeSrc":"5317:6:44","nodeType":"YulIdentifier","src":"5317:6:44"}],"functionName":{"name":"add","nativeSrc":"5308:3:44","nodeType":"YulIdentifier","src":"5308:3:44"},"nativeSrc":"5308:16:44","nodeType":"YulFunctionCall","src":"5308:16:44"},"variableNames":[{"name":"end","nativeSrc":"5301:3:44","nodeType":"YulIdentifier","src":"5301:3:44"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5003:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"5094:5:44","nodeType":"YulTypedName","src":"5094:5:44","type":""},{"name":"length","nativeSrc":"5101:6:44","nodeType":"YulTypedName","src":"5101:6:44","type":""},{"name":"pos","nativeSrc":"5109:3:44","nodeType":"YulTypedName","src":"5109:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5117:3:44","nodeType":"YulTypedName","src":"5117:3:44","type":""}],"src":"5003:327:44"},{"body":{"nativeSrc":"5480:147:44","nodeType":"YulBlock","src":"5480:147:44","statements":[{"nativeSrc":"5491:110:44","nodeType":"YulAssignment","src":"5491:110:44","value":{"arguments":[{"name":"value0","nativeSrc":"5580:6:44","nodeType":"YulIdentifier","src":"5580:6:44"},{"name":"value1","nativeSrc":"5588:6:44","nodeType":"YulIdentifier","src":"5588:6:44"},{"name":"pos","nativeSrc":"5597:3:44","nodeType":"YulIdentifier","src":"5597:3:44"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"5498:81:44","nodeType":"YulIdentifier","src":"5498:81:44"},"nativeSrc":"5498:103:44","nodeType":"YulFunctionCall","src":"5498:103:44"},"variableNames":[{"name":"pos","nativeSrc":"5491:3:44","nodeType":"YulIdentifier","src":"5491:3:44"}]},{"nativeSrc":"5611:10:44","nodeType":"YulAssignment","src":"5611:10:44","value":{"name":"pos","nativeSrc":"5618:3:44","nodeType":"YulIdentifier","src":"5618:3:44"},"variableNames":[{"name":"end","nativeSrc":"5611:3:44","nodeType":"YulIdentifier","src":"5611:3:44"}]}]},"name":"abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"5336:291:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5451:3:44","nodeType":"YulTypedName","src":"5451:3:44","type":""},{"name":"value1","nativeSrc":"5457:6:44","nodeType":"YulTypedName","src":"5457:6:44","type":""},{"name":"value0","nativeSrc":"5465:6:44","nodeType":"YulTypedName","src":"5465:6:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5476:3:44","nodeType":"YulTypedName","src":"5476:3:44","type":""}],"src":"5336:291:44"},{"body":{"nativeSrc":"5729:73:44","nodeType":"YulBlock","src":"5729:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5746:3:44","nodeType":"YulIdentifier","src":"5746:3:44"},{"name":"length","nativeSrc":"5751:6:44","nodeType":"YulIdentifier","src":"5751:6:44"}],"functionName":{"name":"mstore","nativeSrc":"5739:6:44","nodeType":"YulIdentifier","src":"5739:6:44"},"nativeSrc":"5739:19:44","nodeType":"YulFunctionCall","src":"5739:19:44"},"nativeSrc":"5739:19:44","nodeType":"YulExpressionStatement","src":"5739:19:44"},{"nativeSrc":"5767:29:44","nodeType":"YulAssignment","src":"5767:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"5786:3:44","nodeType":"YulIdentifier","src":"5786:3:44"},{"kind":"number","nativeSrc":"5791:4:44","nodeType":"YulLiteral","src":"5791:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5782:3:44","nodeType":"YulIdentifier","src":"5782:3:44"},"nativeSrc":"5782:14:44","nodeType":"YulFunctionCall","src":"5782:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"5767:11:44","nodeType":"YulIdentifier","src":"5767:11:44"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"5633:169:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5701:3:44","nodeType":"YulTypedName","src":"5701:3:44","type":""},{"name":"length","nativeSrc":"5706:6:44","nodeType":"YulTypedName","src":"5706:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5717:11:44","nodeType":"YulTypedName","src":"5717:11:44","type":""}],"src":"5633:169:44"},{"body":{"nativeSrc":"5914:70:44","nodeType":"YulBlock","src":"5914:70:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5936:6:44","nodeType":"YulIdentifier","src":"5936:6:44"},{"kind":"number","nativeSrc":"5944:1:44","nodeType":"YulLiteral","src":"5944:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5932:3:44","nodeType":"YulIdentifier","src":"5932:3:44"},"nativeSrc":"5932:14:44","nodeType":"YulFunctionCall","src":"5932:14:44"},{"hexValue":"43616c6c206661696c656420776974686f757420726561736f6e","kind":"string","nativeSrc":"5948:28:44","nodeType":"YulLiteral","src":"5948:28:44","type":"","value":"Call failed without reason"}],"functionName":{"name":"mstore","nativeSrc":"5925:6:44","nodeType":"YulIdentifier","src":"5925:6:44"},"nativeSrc":"5925:52:44","nodeType":"YulFunctionCall","src":"5925:52:44"},"nativeSrc":"5925:52:44","nodeType":"YulExpressionStatement","src":"5925:52:44"}]},"name":"store_literal_in_memory_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620","nativeSrc":"5808:176:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5906:6:44","nodeType":"YulTypedName","src":"5906:6:44","type":""}],"src":"5808:176:44"},{"body":{"nativeSrc":"6136:220:44","nodeType":"YulBlock","src":"6136:220:44","statements":[{"nativeSrc":"6146:74:44","nodeType":"YulAssignment","src":"6146:74:44","value":{"arguments":[{"name":"pos","nativeSrc":"6212:3:44","nodeType":"YulIdentifier","src":"6212:3:44"},{"kind":"number","nativeSrc":"6217:2:44","nodeType":"YulLiteral","src":"6217:2:44","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"6153:58:44","nodeType":"YulIdentifier","src":"6153:58:44"},"nativeSrc":"6153:67:44","nodeType":"YulFunctionCall","src":"6153:67:44"},"variableNames":[{"name":"pos","nativeSrc":"6146:3:44","nodeType":"YulIdentifier","src":"6146:3:44"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"6318:3:44","nodeType":"YulIdentifier","src":"6318:3:44"}],"functionName":{"name":"store_literal_in_memory_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620","nativeSrc":"6229:88:44","nodeType":"YulIdentifier","src":"6229:88:44"},"nativeSrc":"6229:93:44","nodeType":"YulFunctionCall","src":"6229:93:44"},"nativeSrc":"6229:93:44","nodeType":"YulExpressionStatement","src":"6229:93:44"},{"nativeSrc":"6331:19:44","nodeType":"YulAssignment","src":"6331:19:44","value":{"arguments":[{"name":"pos","nativeSrc":"6342:3:44","nodeType":"YulIdentifier","src":"6342:3:44"},{"kind":"number","nativeSrc":"6347:2:44","nodeType":"YulLiteral","src":"6347:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6338:3:44","nodeType":"YulIdentifier","src":"6338:3:44"},"nativeSrc":"6338:12:44","nodeType":"YulFunctionCall","src":"6338:12:44"},"variableNames":[{"name":"end","nativeSrc":"6331:3:44","nodeType":"YulIdentifier","src":"6331:3:44"}]}]},"name":"abi_encode_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620_to_t_string_memory_ptr_fromStack","nativeSrc":"5990:366:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6124:3:44","nodeType":"YulTypedName","src":"6124:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"6132:3:44","nodeType":"YulTypedName","src":"6132:3:44","type":""}],"src":"5990:366:44"},{"body":{"nativeSrc":"6533:248:44","nodeType":"YulBlock","src":"6533:248:44","statements":[{"nativeSrc":"6543:26:44","nodeType":"YulAssignment","src":"6543:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6555:9:44","nodeType":"YulIdentifier","src":"6555:9:44"},{"kind":"number","nativeSrc":"6566:2:44","nodeType":"YulLiteral","src":"6566:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6551:3:44","nodeType":"YulIdentifier","src":"6551:3:44"},"nativeSrc":"6551:18:44","nodeType":"YulFunctionCall","src":"6551:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6543:4:44","nodeType":"YulIdentifier","src":"6543:4:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6590:9:44","nodeType":"YulIdentifier","src":"6590:9:44"},{"kind":"number","nativeSrc":"6601:1:44","nodeType":"YulLiteral","src":"6601:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6586:3:44","nodeType":"YulIdentifier","src":"6586:3:44"},"nativeSrc":"6586:17:44","nodeType":"YulFunctionCall","src":"6586:17:44"},{"arguments":[{"name":"tail","nativeSrc":"6609:4:44","nodeType":"YulIdentifier","src":"6609:4:44"},{"name":"headStart","nativeSrc":"6615:9:44","nodeType":"YulIdentifier","src":"6615:9:44"}],"functionName":{"name":"sub","nativeSrc":"6605:3:44","nodeType":"YulIdentifier","src":"6605:3:44"},"nativeSrc":"6605:20:44","nodeType":"YulFunctionCall","src":"6605:20:44"}],"functionName":{"name":"mstore","nativeSrc":"6579:6:44","nodeType":"YulIdentifier","src":"6579:6:44"},"nativeSrc":"6579:47:44","nodeType":"YulFunctionCall","src":"6579:47:44"},"nativeSrc":"6579:47:44","nodeType":"YulExpressionStatement","src":"6579:47:44"},{"nativeSrc":"6635:139:44","nodeType":"YulAssignment","src":"6635:139:44","value":{"arguments":[{"name":"tail","nativeSrc":"6769:4:44","nodeType":"YulIdentifier","src":"6769:4:44"}],"functionName":{"name":"abi_encode_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620_to_t_string_memory_ptr_fromStack","nativeSrc":"6643:124:44","nodeType":"YulIdentifier","src":"6643:124:44"},"nativeSrc":"6643:131:44","nodeType":"YulFunctionCall","src":"6643:131:44"},"variableNames":[{"name":"tail","nativeSrc":"6635:4:44","nodeType":"YulIdentifier","src":"6635:4:44"}]}]},"name":"abi_encode_tuple_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6362:419:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6513:9:44","nodeType":"YulTypedName","src":"6513:9:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6528:4:44","nodeType":"YulTypedName","src":"6528:4:44","type":""}],"src":"6362:419:44"},{"body":{"nativeSrc":"6882:73:44","nodeType":"YulBlock","src":"6882:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6899:3:44","nodeType":"YulIdentifier","src":"6899:3:44"},{"name":"length","nativeSrc":"6904:6:44","nodeType":"YulIdentifier","src":"6904:6:44"}],"functionName":{"name":"mstore","nativeSrc":"6892:6:44","nodeType":"YulIdentifier","src":"6892:6:44"},"nativeSrc":"6892:19:44","nodeType":"YulFunctionCall","src":"6892:19:44"},"nativeSrc":"6892:19:44","nodeType":"YulExpressionStatement","src":"6892:19:44"},{"nativeSrc":"6920:29:44","nodeType":"YulAssignment","src":"6920:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"6939:3:44","nodeType":"YulIdentifier","src":"6939:3:44"},{"kind":"number","nativeSrc":"6944:4:44","nodeType":"YulLiteral","src":"6944:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6935:3:44","nodeType":"YulIdentifier","src":"6935:3:44"},"nativeSrc":"6935:14:44","nodeType":"YulFunctionCall","src":"6935:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"6920:11:44","nodeType":"YulIdentifier","src":"6920:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"6787:168:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"6854:3:44","nodeType":"YulTypedName","src":"6854:3:44","type":""},{"name":"length","nativeSrc":"6859:6:44","nodeType":"YulTypedName","src":"6859:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"6870:11:44","nodeType":"YulTypedName","src":"6870:11:44","type":""}],"src":"6787:168:44"},{"body":{"nativeSrc":"7009:54:44","nodeType":"YulBlock","src":"7009:54:44","statements":[{"nativeSrc":"7019:38:44","nodeType":"YulAssignment","src":"7019:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7037:5:44","nodeType":"YulIdentifier","src":"7037:5:44"},{"kind":"number","nativeSrc":"7044:2:44","nodeType":"YulLiteral","src":"7044:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7033:3:44","nodeType":"YulIdentifier","src":"7033:3:44"},"nativeSrc":"7033:14:44","nodeType":"YulFunctionCall","src":"7033:14:44"},{"arguments":[{"kind":"number","nativeSrc":"7053:2:44","nodeType":"YulLiteral","src":"7053:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7049:3:44","nodeType":"YulIdentifier","src":"7049:3:44"},"nativeSrc":"7049:7:44","nodeType":"YulFunctionCall","src":"7049:7:44"}],"functionName":{"name":"and","nativeSrc":"7029:3:44","nodeType":"YulIdentifier","src":"7029:3:44"},"nativeSrc":"7029:28:44","nodeType":"YulFunctionCall","src":"7029:28:44"},"variableNames":[{"name":"result","nativeSrc":"7019:6:44","nodeType":"YulIdentifier","src":"7019:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"6961:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6992:5:44","nodeType":"YulTypedName","src":"6992:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7002:6:44","nodeType":"YulTypedName","src":"7002:6:44","type":""}],"src":"6961:102:44"},{"body":{"nativeSrc":"7191:214:44","nodeType":"YulBlock","src":"7191:214:44","statements":[{"nativeSrc":"7201:77:44","nodeType":"YulAssignment","src":"7201:77:44","value":{"arguments":[{"name":"pos","nativeSrc":"7266:3:44","nodeType":"YulIdentifier","src":"7266:3:44"},{"name":"length","nativeSrc":"7271:6:44","nodeType":"YulIdentifier","src":"7271:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"7208:57:44","nodeType":"YulIdentifier","src":"7208:57:44"},"nativeSrc":"7208:70:44","nodeType":"YulFunctionCall","src":"7208:70:44"},"variableNames":[{"name":"pos","nativeSrc":"7201:3:44","nodeType":"YulIdentifier","src":"7201:3:44"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"7325:5:44","nodeType":"YulIdentifier","src":"7325:5:44"},{"name":"pos","nativeSrc":"7332:3:44","nodeType":"YulIdentifier","src":"7332:3:44"},{"name":"length","nativeSrc":"7337:6:44","nodeType":"YulIdentifier","src":"7337:6:44"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"7288:36:44","nodeType":"YulIdentifier","src":"7288:36:44"},"nativeSrc":"7288:56:44","nodeType":"YulFunctionCall","src":"7288:56:44"},"nativeSrc":"7288:56:44","nodeType":"YulExpressionStatement","src":"7288:56:44"},{"nativeSrc":"7353:46:44","nodeType":"YulAssignment","src":"7353:46:44","value":{"arguments":[{"name":"pos","nativeSrc":"7364:3:44","nodeType":"YulIdentifier","src":"7364:3:44"},{"arguments":[{"name":"length","nativeSrc":"7391:6:44","nodeType":"YulIdentifier","src":"7391:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7369:21:44","nodeType":"YulIdentifier","src":"7369:21:44"},"nativeSrc":"7369:29:44","nodeType":"YulFunctionCall","src":"7369:29:44"}],"functionName":{"name":"add","nativeSrc":"7360:3:44","nodeType":"YulIdentifier","src":"7360:3:44"},"nativeSrc":"7360:39:44","nodeType":"YulFunctionCall","src":"7360:39:44"},"variableNames":[{"name":"end","nativeSrc":"7353:3:44","nodeType":"YulIdentifier","src":"7353:3:44"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7091:314:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"7164:5:44","nodeType":"YulTypedName","src":"7164:5:44","type":""},{"name":"length","nativeSrc":"7171:6:44","nodeType":"YulTypedName","src":"7171:6:44","type":""},{"name":"pos","nativeSrc":"7179:3:44","nodeType":"YulTypedName","src":"7179:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7187:3:44","nodeType":"YulTypedName","src":"7187:3:44","type":""}],"src":"7091:314:44"},{"body":{"nativeSrc":"7474:52:44","nodeType":"YulBlock","src":"7474:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7491:3:44","nodeType":"YulIdentifier","src":"7491:3:44"},{"arguments":[{"name":"value","nativeSrc":"7513:5:44","nodeType":"YulIdentifier","src":"7513:5:44"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"7496:16:44","nodeType":"YulIdentifier","src":"7496:16:44"},"nativeSrc":"7496:23:44","nodeType":"YulFunctionCall","src":"7496:23:44"}],"functionName":{"name":"mstore","nativeSrc":"7484:6:44","nodeType":"YulIdentifier","src":"7484:6:44"},"nativeSrc":"7484:36:44","nodeType":"YulFunctionCall","src":"7484:36:44"},"nativeSrc":"7484:36:44","nodeType":"YulExpressionStatement","src":"7484:36:44"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"7411:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7462:5:44","nodeType":"YulTypedName","src":"7462:5:44","type":""},{"name":"pos","nativeSrc":"7469:3:44","nodeType":"YulTypedName","src":"7469:3:44","type":""}],"src":"7411:115:44"},{"body":{"nativeSrc":"7712:365:44","nodeType":"YulBlock","src":"7712:365:44","statements":[{"nativeSrc":"7722:26:44","nodeType":"YulAssignment","src":"7722:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7734:9:44","nodeType":"YulIdentifier","src":"7734:9:44"},{"kind":"number","nativeSrc":"7745:2:44","nodeType":"YulLiteral","src":"7745:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7730:3:44","nodeType":"YulIdentifier","src":"7730:3:44"},"nativeSrc":"7730:18:44","nodeType":"YulFunctionCall","src":"7730:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7722:4:44","nodeType":"YulIdentifier","src":"7722:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7802:6:44","nodeType":"YulIdentifier","src":"7802:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7815:9:44","nodeType":"YulIdentifier","src":"7815:9:44"},{"kind":"number","nativeSrc":"7826:1:44","nodeType":"YulLiteral","src":"7826:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7811:3:44","nodeType":"YulIdentifier","src":"7811:3:44"},"nativeSrc":"7811:17:44","nodeType":"YulFunctionCall","src":"7811:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7758:43:44","nodeType":"YulIdentifier","src":"7758:43:44"},"nativeSrc":"7758:71:44","nodeType":"YulFunctionCall","src":"7758:71:44"},"nativeSrc":"7758:71:44","nodeType":"YulExpressionStatement","src":"7758:71:44"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7850:9:44","nodeType":"YulIdentifier","src":"7850:9:44"},{"kind":"number","nativeSrc":"7861:2:44","nodeType":"YulLiteral","src":"7861:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7846:3:44","nodeType":"YulIdentifier","src":"7846:3:44"},"nativeSrc":"7846:18:44","nodeType":"YulFunctionCall","src":"7846:18:44"},{"arguments":[{"name":"tail","nativeSrc":"7870:4:44","nodeType":"YulIdentifier","src":"7870:4:44"},{"name":"headStart","nativeSrc":"7876:9:44","nodeType":"YulIdentifier","src":"7876:9:44"}],"functionName":{"name":"sub","nativeSrc":"7866:3:44","nodeType":"YulIdentifier","src":"7866:3:44"},"nativeSrc":"7866:20:44","nodeType":"YulFunctionCall","src":"7866:20:44"}],"functionName":{"name":"mstore","nativeSrc":"7839:6:44","nodeType":"YulIdentifier","src":"7839:6:44"},"nativeSrc":"7839:48:44","nodeType":"YulFunctionCall","src":"7839:48:44"},"nativeSrc":"7839:48:44","nodeType":"YulExpressionStatement","src":"7839:48:44"},{"nativeSrc":"7896:94:44","nodeType":"YulAssignment","src":"7896:94:44","value":{"arguments":[{"name":"value1","nativeSrc":"7968:6:44","nodeType":"YulIdentifier","src":"7968:6:44"},{"name":"value2","nativeSrc":"7976:6:44","nodeType":"YulIdentifier","src":"7976:6:44"},{"name":"tail","nativeSrc":"7985:4:44","nodeType":"YulIdentifier","src":"7985:4:44"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7904:63:44","nodeType":"YulIdentifier","src":"7904:63:44"},"nativeSrc":"7904:86:44","nodeType":"YulFunctionCall","src":"7904:86:44"},"variableNames":[{"name":"tail","nativeSrc":"7896:4:44","nodeType":"YulIdentifier","src":"7896:4:44"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"8042:6:44","nodeType":"YulIdentifier","src":"8042:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8055:9:44","nodeType":"YulIdentifier","src":"8055:9:44"},{"kind":"number","nativeSrc":"8066:2:44","nodeType":"YulLiteral","src":"8066:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8051:3:44","nodeType":"YulIdentifier","src":"8051:3:44"},"nativeSrc":"8051:18:44","nodeType":"YulFunctionCall","src":"8051:18:44"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"8000:41:44","nodeType":"YulIdentifier","src":"8000:41:44"},"nativeSrc":"8000:70:44","nodeType":"YulFunctionCall","src":"8000:70:44"},"nativeSrc":"8000:70:44","nodeType":"YulExpressionStatement","src":"8000:70:44"}]},"name":"abi_encode_tuple_t_address_t_bytes_calldata_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__fromStack_reversed","nativeSrc":"7532:545:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7660:9:44","nodeType":"YulTypedName","src":"7660:9:44","type":""},{"name":"value3","nativeSrc":"7672:6:44","nodeType":"YulTypedName","src":"7672:6:44","type":""},{"name":"value2","nativeSrc":"7680:6:44","nodeType":"YulTypedName","src":"7680:6:44","type":""},{"name":"value1","nativeSrc":"7688:6:44","nodeType":"YulTypedName","src":"7688:6:44","type":""},{"name":"value0","nativeSrc":"7696:6:44","nodeType":"YulTypedName","src":"7696:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7707:4:44","nodeType":"YulTypedName","src":"7707:4:44","type":""}],"src":"7532:545:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint32(headStart, dataEnd) -> value0, value1, value2, value3 {\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 := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value3 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\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_bool(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_bool(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 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_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\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    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n        pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1,  pos)\n\n        end := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620(memPtr) {\n\n        mstore(add(memPtr, 0), \"Call failed without reason\")\n\n    }\n\n    function abi_encode_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n        store_literal_in_memory_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_a1924008e6a63803b43992dfeeab5c6e501205fda16d762c32c5a4be815b2620_to_t_string_memory_ptr_fromStack( tail)\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 round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    // bytes -> bytes\n    function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n        copy_calldata_to_memory_with_cleanup(start, pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_address_t_bytes_calldata_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__fromStack_reversed(headStart , value3, 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        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2,  tail)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value3,  add(headStart, 64))\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80633dbb202b1461005c5780636e296e45146100785780638634fbeb14610096578063b892c533146100b2578063e1b0967f146100ce575b600080fd5b610076600480360381019061007191906103b8565b6100ec565b005b610080610213565b60405161008d919061043b565b60405180910390f35b6100b060048036038101906100ab919061048e565b61023c565b005b6100cc60048036038101906100c791906104bb565b610259565b005b6100d661029c565b6040516100e391906104f7565b60405180910390f35b600060149054906101000a900460ff16156101d0576000808573ffffffffffffffffffffffffffffffffffffffff168363ffffffff168686604051610132929190610551565b60006040518083038160008787f1925050503d8060008114610170576040519150601f19603f3d011682016040523d82523d6000602084013e610175565b606091505b5091509150816101cd576000815111156101925780518060208301fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c4906105c7565b60405180910390fd5b50505b7f3ac974344a508e71193447b4a05edfc424d12096fbe794d32e600ec0702fc877848484846040516102059493929190610645565b60405180910390a150505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600060146101000a81548160ff02191690831515021790555050565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060149054906101000a900460ff1681565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102e4826102b9565b9050919050565b6102f4816102d9565b81146102ff57600080fd5b50565b600081359050610311816102eb565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261033c5761033b610317565b5b8235905067ffffffffffffffff8111156103595761035861031c565b5b60208301915083600182028301111561037557610374610321565b5b9250929050565b600063ffffffff82169050919050565b6103958161037c565b81146103a057600080fd5b50565b6000813590506103b28161038c565b92915050565b600080600080606085870312156103d2576103d16102af565b5b60006103e087828801610302565b945050602085013567ffffffffffffffff811115610401576104006102b4565b5b61040d87828801610326565b93509350506040610420878288016103a3565b91505092959194509250565b610435816102d9565b82525050565b6000602082019050610450600083018461042c565b92915050565b60008115159050919050565b61046b81610456565b811461047657600080fd5b50565b60008135905061048881610462565b92915050565b6000602082840312156104a4576104a36102af565b5b60006104b284828501610479565b91505092915050565b6000602082840312156104d1576104d06102af565b5b60006104df84828501610302565b91505092915050565b6104f181610456565b82525050565b600060208201905061050c60008301846104e8565b92915050565b600081905092915050565b82818337600083830152505050565b60006105388385610512565b935061054583858461051d565b82840190509392505050565b600061055e82848661052c565b91508190509392505050565b600082825260208201905092915050565b7f43616c6c206661696c656420776974686f757420726561736f6e000000000000600082015250565b60006105b1601a8361056a565b91506105bc8261057b565b602082019050919050565b600060208201905081810360008301526105e0816105a4565b9050919050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b600061061583856105e7565b935061062283858461051d565b61062b836105f8565b840190509392505050565b61063f8161037c565b82525050565b600060608201905061065a600083018761042c565b818103602083015261066d818587610609565b905061067c6040830184610636565b9594505050505056fea2646970667358221220de7fd9ad42c7a4b09737147d9f9702b41b1881d758bd9d40df7c89df3d4d260264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3DBB202B EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x6E296E45 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0x8634FBEB EQ PUSH2 0x96 JUMPI DUP1 PUSH4 0xB892C533 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0xE1B0967F EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x3B8 JUMP JUMPDEST PUSH2 0xEC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x80 PUSH2 0x213 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAB SWAP2 SWAP1 PUSH2 0x48E JUMP JUMPDEST PUSH2 0x23C JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x4BB JUMP JUMPDEST PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0x29C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE3 SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1D0 JUMPI PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH4 0xFFFFFFFF AND DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x132 SWAP3 SWAP2 SWAP1 PUSH2 0x551 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP8 CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x170 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 0x175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x1CD JUMPI PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x192 JUMPI DUP1 MLOAD DUP1 PUSH1 0x20 DUP4 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4 SWAP1 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMPDEST PUSH32 0x3AC974344A508E71193447B4A05EDFC424D12096FBE794D32E600EC0702FC877 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x205 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x645 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E4 DUP3 PUSH2 0x2B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F4 DUP2 PUSH2 0x2D9 JUMP JUMPDEST DUP2 EQ PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x311 DUP2 PUSH2 0x2EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x33C JUMPI PUSH2 0x33B PUSH2 0x317 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x359 JUMPI PUSH2 0x358 PUSH2 0x31C JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x375 JUMPI PUSH2 0x374 PUSH2 0x321 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x395 DUP2 PUSH2 0x37C JUMP JUMPDEST DUP2 EQ PUSH2 0x3A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3B2 DUP2 PUSH2 0x38C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D2 JUMPI PUSH2 0x3D1 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x3E0 DUP8 DUP3 DUP9 ADD PUSH2 0x302 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x401 JUMPI PUSH2 0x400 PUSH2 0x2B4 JUMP JUMPDEST JUMPDEST PUSH2 0x40D DUP8 DUP3 DUP9 ADD PUSH2 0x326 JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x420 DUP8 DUP3 DUP9 ADD PUSH2 0x3A3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x435 DUP2 PUSH2 0x2D9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x450 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x42C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x46B DUP2 PUSH2 0x456 JUMP JUMPDEST DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x488 DUP2 PUSH2 0x462 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A4 JUMPI PUSH2 0x4A3 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4B2 DUP5 DUP3 DUP6 ADD PUSH2 0x479 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4D1 JUMPI PUSH2 0x4D0 PUSH2 0x2AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4DF DUP5 DUP3 DUP6 ADD PUSH2 0x302 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4F1 DUP2 PUSH2 0x456 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x50C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4E8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x538 DUP4 DUP6 PUSH2 0x512 JUMP JUMPDEST SWAP4 POP PUSH2 0x545 DUP4 DUP6 DUP5 PUSH2 0x51D JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55E DUP3 DUP5 DUP7 PUSH2 0x52C JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C206661696C656420776974686F757420726561736F6E000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5B1 PUSH1 0x1A DUP4 PUSH2 0x56A JUMP JUMPDEST SWAP2 POP PUSH2 0x5BC DUP3 PUSH2 0x57B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5E0 DUP2 PUSH2 0x5A4 JUMP JUMPDEST 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 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x615 DUP4 DUP6 PUSH2 0x5E7 JUMP JUMPDEST SWAP4 POP PUSH2 0x622 DUP4 DUP6 DUP5 PUSH2 0x51D JUMP JUMPDEST PUSH2 0x62B DUP4 PUSH2 0x5F8 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F DUP2 PUSH2 0x37C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x65A PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x42C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x66D DUP2 DUP6 DUP8 PUSH2 0x609 JUMP JUMPDEST SWAP1 POP PUSH2 0x67C PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x636 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDE PUSH32 0xD9AD42C7A4B09737147D9F9702B41B1881D758BD9D40DF7C89DF3D4D26026473 PUSH16 0x6C634300081C00330000000000000000 ","sourceMap":"203:1636:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;616:798;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1420:124;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1718:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1550:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;318:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;616:798;718:17;;;;;;;;;;;714:640;;;752:12;766:19;789:6;:11;;814:8;806:17;;825:8;;789:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;751:83;;;;854:7;849:495;;968:1;952:6;:13;:17;948:382;;;1135:6;1129:13;1191:15;1186:2;1178:6;1174:15;1167:40;948:382;1275:36;;;;;;;;;;:::i;:::-;;;;;;;;849:495;737:617;;714:640;1368:39;1380:6;1388:8;;1398;1368:39;;;;;;;;;:::i;:::-;;;;;;;;616:798;;;;:::o;1420:124::-;1484:7;1510:27;;;;;;;;;;;1503:34;;1420:124;:::o;1718:119::-;1812:18;1792:17;;:38;;;;;;;;;;;;;;;;;;1718:119;:::o;1550:162::-;1677:28;1647:27;;:58;;;;;;;;;;;;;;;;;;1550:162;:::o;318:29::-;;;;;;;;;;;;;:::o;88:117:44:-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:117::-;950:1;947;940:12;964:117;1073:1;1070;1063:12;1087:117;1196:1;1193;1186:12;1223:552;1280:8;1290:6;1340:3;1333:4;1325:6;1321:17;1317:27;1307:122;;1348:79;;:::i;:::-;1307:122;1461:6;1448:20;1438:30;;1491:18;1483:6;1480:30;1477:117;;;1513:79;;:::i;:::-;1477:117;1627:4;1619:6;1615:17;1603:29;;1681:3;1673:4;1665:6;1661:17;1651:8;1647:32;1644:41;1641:128;;;1688:79;;:::i;:::-;1641:128;1223:552;;;;;:::o;1781:93::-;1817:7;1857:10;1850:5;1846:22;1835:33;;1781:93;;;:::o;1880:120::-;1952:23;1969:5;1952:23;:::i;:::-;1945:5;1942:34;1932:62;;1990:1;1987;1980:12;1932:62;1880:120;:::o;2006:137::-;2051:5;2089:6;2076:20;2067:29;;2105:32;2131:5;2105:32;:::i;:::-;2006:137;;;;:::o;2149:815::-;2236:6;2244;2252;2260;2309:2;2297:9;2288:7;2284:23;2280:32;2277:119;;;2315:79;;:::i;:::-;2277:119;2435:1;2460:53;2505:7;2496:6;2485:9;2481:22;2460:53;:::i;:::-;2450:63;;2406:117;2590:2;2579:9;2575:18;2562:32;2621:18;2613:6;2610:30;2607:117;;;2643:79;;:::i;:::-;2607:117;2756:64;2812:7;2803:6;2792:9;2788:22;2756:64;:::i;:::-;2738:82;;;;2533:297;2869:2;2895:52;2939:7;2930:6;2919:9;2915:22;2895:52;:::i;:::-;2885:62;;2840:117;2149:815;;;;;;;:::o;2970:118::-;3057:24;3075:5;3057:24;:::i;:::-;3052:3;3045:37;2970:118;;:::o;3094:222::-;3187:4;3225:2;3214:9;3210:18;3202:26;;3238:71;3306:1;3295:9;3291:17;3282:6;3238:71;:::i;:::-;3094:222;;;;:::o;3322:90::-;3356:7;3399:5;3392:13;3385:21;3374:32;;3322:90;;;:::o;3418:116::-;3488:21;3503:5;3488:21;:::i;:::-;3481:5;3478:32;3468:60;;3524:1;3521;3514:12;3468:60;3418:116;:::o;3540:133::-;3583:5;3621:6;3608:20;3599:29;;3637:30;3661:5;3637:30;:::i;:::-;3540:133;;;;:::o;3679:323::-;3735:6;3784:2;3772:9;3763:7;3759:23;3755:32;3752:119;;;3790:79;;:::i;:::-;3752:119;3910:1;3935:50;3977:7;3968:6;3957:9;3953:22;3935:50;:::i;:::-;3925:60;;3881:114;3679:323;;;;:::o;4008:329::-;4067:6;4116:2;4104:9;4095:7;4091:23;4087:32;4084:119;;;4122:79;;:::i;:::-;4084:119;4242:1;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4213:117;4008:329;;;;:::o;4343:109::-;4424:21;4439:5;4424:21;:::i;:::-;4419:3;4412:34;4343:109;;:::o;4458:210::-;4545:4;4583:2;4572:9;4568:18;4560:26;;4596:65;4658:1;4647:9;4643:17;4634:6;4596:65;:::i;:::-;4458:210;;;;:::o;4674:147::-;4775:11;4812:3;4797:18;;4674:147;;;;:::o;4827:148::-;4925:6;4920:3;4915;4902:30;4966:1;4957:6;4952:3;4948:16;4941:27;4827:148;;;:::o;5003:327::-;5117:3;5138:88;5219:6;5214:3;5138:88;:::i;:::-;5131:95;;5236:56;5285:6;5280:3;5273:5;5236:56;:::i;:::-;5317:6;5312:3;5308:16;5301:23;;5003:327;;;;;:::o;5336:291::-;5476:3;5498:103;5597:3;5588:6;5580;5498:103;:::i;:::-;5491:110;;5618:3;5611:10;;5336:291;;;;;:::o;5633:169::-;5717:11;5751:6;5746:3;5739:19;5791:4;5786:3;5782:14;5767:29;;5633:169;;;;:::o;5808:176::-;5948:28;5944:1;5936:6;5932:14;5925:52;5808:176;:::o;5990:366::-;6132:3;6153:67;6217:2;6212:3;6153:67;:::i;:::-;6146:74;;6229:93;6318:3;6229:93;:::i;:::-;6347:2;6342:3;6338:12;6331:19;;5990:366;;;:::o;6362:419::-;6528:4;6566:2;6555:9;6551:18;6543:26;;6615:9;6609:4;6605:20;6601:1;6590:9;6586:17;6579:47;6643:131;6769:4;6643:131;:::i;:::-;6635:139;;6362:419;;;:::o;6787:168::-;6870:11;6904:6;6899:3;6892:19;6944:4;6939:3;6935:14;6920:29;;6787:168;;;;:::o;6961:102::-;7002:6;7053:2;7049:7;7044:2;7037:5;7033:14;7029:28;7019:38;;6961:102;;;:::o;7091:314::-;7187:3;7208:70;7271:6;7266:3;7208:70;:::i;:::-;7201:77;;7288:56;7337:6;7332:3;7325:5;7288:56;:::i;:::-;7369:29;7391:6;7369:29;:::i;:::-;7364:3;7360:39;7353:46;;7091:314;;;;;:::o;7411:115::-;7496:23;7513:5;7496:23;:::i;:::-;7491:3;7484:36;7411:115;;:::o;7532:545::-;7707:4;7745:2;7734:9;7730:18;7722:26;;7758:71;7826:1;7815:9;7811:17;7802:6;7758:71;:::i;:::-;7876:9;7870:4;7866:20;7861:2;7850:9;7846:18;7839:48;7904:86;7985:4;7976:6;7968;7904:86;:::i;:::-;7896:94;;8000:70;8066:2;8055:9;8051:18;8042:6;8000:70;:::i;:::-;7532:545;;;;;;;:::o"},"methodIdentifiers":{"sendMessage(address,bytes,uint32)":"3dbb202b","setShouldSendMessage(bool)":"8634fbeb","setXDomainMessageSenderAddress(address)":"b892c533","shouldSendMessage()":"e1b0967f","xDomainMessageSender()":"6e296e45"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_xDomainMessageSender\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_shouldSendMessage\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"name\":\"MessageSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_shouldSendMessage\",\"type\":\"bool\"}],\"name\":\"setShouldSendMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_xDomainMessageSenderAddress\",\"type\":\"address\"}],\"name\":\"setXDomainMessageSenderAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shouldSendMessage\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mock contract for testing cross-domain messaging functionality.\",\"kind\":\"dev\",\"methods\":{\"sendMessage(address,bytes,uint32)\":{\"details\":\"Sends a message to a target contract on a different chain.\",\"params\":{\"_message\":\"The encoded message data containing function selectors and parameters.\",\"gasLimit\":\"The maximum amount of gas allocated for executing the message on the target chain.\",\"target\":\"The address of the target contract on the destination chain.\"}},\"xDomainMessageSender()\":{\"details\":\"Retrieves the address of the sender of the cross-domain message.\",\"returns\":{\"_0\":\"The address of the entity that originated the cross-domain message.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Op/mocks/MockCrossDomainMessenger.sol\":\"MockCrossDomainMessenger\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]},\"contracts/Op/mocks/MockCrossDomainMessenger.sol\":{\"keccak256\":\"0xf22566f59d048fa507be522afaabcf891cb566f7839189338a3cbefc2603f182\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://accce555605e0b035b4e74c86c50f7a668bea4c73c6f0b47da2d4a39e21ca855\",\"dweb:/ipfs/QmTtNfEmsVZoTMm8pjxisu9MbAfevs2WRapMZVC4y9aWdq\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":7315,"contract":"contracts/Op/mocks/MockCrossDomainMessenger.sol:MockCrossDomainMessenger","label":"xDomainMessageSenderAddress","offset":0,"slot":"0","type":"t_address"},{"astId":7317,"contract":"contracts/Op/mocks/MockCrossDomainMessenger.sol:MockCrossDomainMessenger","label":"shouldSendMessage","offset":20,"slot":"0","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}}}},"contracts/Registrars/EnsRegistrar.sol":{"EnsRegistrar":{"abi":[{"inputs":[{"internalType":"address","name":"_ensRegistry","type":"address"},{"internalType":"address","name":"_sciRegistry","type":"address"},{"internalType":"address","name":"_crossChainDomainMessagnger","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"AccountIsNotEnsOwner","type":"error"},{"inputs":[],"name":"REGISTER_DOMAIN_GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"crossDomainMessanger","outputs":[{"internalType":"contract ICrossDomainMessanger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ensRegistry","outputs":[{"internalType":"contract ENS","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"registerDomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"registerDomainWithVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"targetRegistrar","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_7482":{"entryPoint":null,"id":7482,"parameterSlots":3,"returnSlots":0},"@_7667":{"entryPoint":null,"id":7667,"parameterSlots":2,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_address_fromMemory":{"entryPoint":329,"id":null,"parameterSlots":2,"returnSlots":3},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":267,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":235,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":230,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":285,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1511:44","nodeType":"YulBlock","src":"0:1511:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"956:552:44","nodeType":"YulBlock","src":"956:552:44","statements":[{"body":{"nativeSrc":"1002:83:44","nodeType":"YulBlock","src":"1002:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1004:77:44","nodeType":"YulIdentifier","src":"1004:77:44"},"nativeSrc":"1004:79:44","nodeType":"YulFunctionCall","src":"1004:79:44"},"nativeSrc":"1004:79:44","nodeType":"YulExpressionStatement","src":"1004:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"977:7:44","nodeType":"YulIdentifier","src":"977:7:44"},{"name":"headStart","nativeSrc":"986:9:44","nodeType":"YulIdentifier","src":"986:9:44"}],"functionName":{"name":"sub","nativeSrc":"973:3:44","nodeType":"YulIdentifier","src":"973:3:44"},"nativeSrc":"973:23:44","nodeType":"YulFunctionCall","src":"973:23:44"},{"kind":"number","nativeSrc":"998:2:44","nodeType":"YulLiteral","src":"998:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"969:3:44","nodeType":"YulIdentifier","src":"969:3:44"},"nativeSrc":"969:32:44","nodeType":"YulFunctionCall","src":"969:32:44"},"nativeSrc":"966:119:44","nodeType":"YulIf","src":"966:119:44"},{"nativeSrc":"1095:128:44","nodeType":"YulBlock","src":"1095:128:44","statements":[{"nativeSrc":"1110:15:44","nodeType":"YulVariableDeclaration","src":"1110:15:44","value":{"kind":"number","nativeSrc":"1124:1:44","nodeType":"YulLiteral","src":"1124:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1114:6:44","nodeType":"YulTypedName","src":"1114:6:44","type":""}]},{"nativeSrc":"1139:74:44","nodeType":"YulAssignment","src":"1139:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1185:9:44","nodeType":"YulIdentifier","src":"1185:9:44"},{"name":"offset","nativeSrc":"1196:6:44","nodeType":"YulIdentifier","src":"1196:6:44"}],"functionName":{"name":"add","nativeSrc":"1181:3:44","nodeType":"YulIdentifier","src":"1181:3:44"},"nativeSrc":"1181:22:44","nodeType":"YulFunctionCall","src":"1181:22:44"},{"name":"dataEnd","nativeSrc":"1205:7:44","nodeType":"YulIdentifier","src":"1205:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1149:31:44","nodeType":"YulIdentifier","src":"1149:31:44"},"nativeSrc":"1149:64:44","nodeType":"YulFunctionCall","src":"1149:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1139:6:44","nodeType":"YulIdentifier","src":"1139:6:44"}]}]},{"nativeSrc":"1233:129:44","nodeType":"YulBlock","src":"1233:129:44","statements":[{"nativeSrc":"1248:16:44","nodeType":"YulVariableDeclaration","src":"1248:16:44","value":{"kind":"number","nativeSrc":"1262:2:44","nodeType":"YulLiteral","src":"1262:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1252:6:44","nodeType":"YulTypedName","src":"1252:6:44","type":""}]},{"nativeSrc":"1278:74:44","nodeType":"YulAssignment","src":"1278:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1324:9:44","nodeType":"YulIdentifier","src":"1324:9:44"},{"name":"offset","nativeSrc":"1335:6:44","nodeType":"YulIdentifier","src":"1335:6:44"}],"functionName":{"name":"add","nativeSrc":"1320:3:44","nodeType":"YulIdentifier","src":"1320:3:44"},"nativeSrc":"1320:22:44","nodeType":"YulFunctionCall","src":"1320:22:44"},{"name":"dataEnd","nativeSrc":"1344:7:44","nodeType":"YulIdentifier","src":"1344:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1288:31:44","nodeType":"YulIdentifier","src":"1288:31:44"},"nativeSrc":"1288:64:44","nodeType":"YulFunctionCall","src":"1288:64:44"},"variableNames":[{"name":"value1","nativeSrc":"1278:6:44","nodeType":"YulIdentifier","src":"1278:6:44"}]}]},{"nativeSrc":"1372:129:44","nodeType":"YulBlock","src":"1372:129:44","statements":[{"nativeSrc":"1387:16:44","nodeType":"YulVariableDeclaration","src":"1387:16:44","value":{"kind":"number","nativeSrc":"1401:2:44","nodeType":"YulLiteral","src":"1401:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1391:6:44","nodeType":"YulTypedName","src":"1391:6:44","type":""}]},{"nativeSrc":"1417:74:44","nodeType":"YulAssignment","src":"1417:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1463:9:44","nodeType":"YulIdentifier","src":"1463:9:44"},{"name":"offset","nativeSrc":"1474:6:44","nodeType":"YulIdentifier","src":"1474:6:44"}],"functionName":{"name":"add","nativeSrc":"1459:3:44","nodeType":"YulIdentifier","src":"1459:3:44"},"nativeSrc":"1459:22:44","nodeType":"YulFunctionCall","src":"1459:22:44"},{"name":"dataEnd","nativeSrc":"1483:7:44","nodeType":"YulIdentifier","src":"1483:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1427:31:44","nodeType":"YulIdentifier","src":"1427:31:44"},"nativeSrc":"1427:64:44","nodeType":"YulFunctionCall","src":"1427:64:44"},"variableNames":[{"name":"value2","nativeSrc":"1417:6:44","nodeType":"YulIdentifier","src":"1417:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_address_fromMemory","nativeSrc":"845:663:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"910:9:44","nodeType":"YulTypedName","src":"910:9:44","type":""},{"name":"dataEnd","nativeSrc":"921:7:44","nodeType":"YulTypedName","src":"921:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"933:6:44","nodeType":"YulTypedName","src":"933:6:44","type":""},{"name":"value1","nativeSrc":"941:6:44","nodeType":"YulTypedName","src":"941:6:44","type":""},{"name":"value2","nativeSrc":"949:6:44","nodeType":"YulTypedName","src":"949:6:44","type":""}],"src":"845:663:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_address_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b50604051610b67380380610b6783398181016040528101906100329190610149565b81818073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505050505061019c565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610116826100eb565b9050919050565b6101268161010b565b811461013157600080fd5b50565b6000815190506101438161011d565b92915050565b600080600060608486031215610162576101616100e6565b5b600061017086828701610134565b935050602061018186828701610134565b925050604061019286828701610134565b9150509250925092565b60805160a0516109916101d66000396000818161019a015261021c01526000818161015201528181610314015261042401526109916000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80637d73b2311161005b5780637d73b231146100da578063a8c00861146100f8578063c03799db14610114578063d9e63a89146101325761007d565b8063095f025e146100825780634c7464cf146100a057806377a50701146100bc575b600080fd5b61008a610150565b60405161009791906105ae565b60405180910390f35b6100ba60048036038101906100b59190610654565b610174565b005b6100c4610191565b6040516100d191906106b3565b60405180910390f35b6100e2610198565b6040516100ef91906106ef565b60405180910390f35b610112600480360381019061010d9190610736565b6101bc565b005b61011c6101d8565b6040516101299190610785565b60405180910390f35b61013a6101fc565b60405161014791906106b3565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b33826101808282610203565b61018b338585610312565b50505050565b62030d4081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610203565b6101d28484610422565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b620493e081565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161027391906107af565b602060405180830381865afa158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b491906107df565b73ffffffffffffffffffffffffffffffffffffffff161461030e5781816040517f36b8521000000000000000000000000000000000000000000000000000000000815260040161030592919061080c565b60405180910390fd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633dbb202b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685858560405160240161038493929190610856565b60405160208183030381529060405263dd738e6c60e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050620493e06040518463ffffffff1660e01b81526004016103eb9392919061091d565b600060405180830381600087803b15801561040557600080fd5b505af1158015610419573d6000803e3d6000fd5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633dbb202b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848460405160240161049292919061080c565b60405160208183030381529060405263a8c0086160e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062030d406040518463ffffffff1660e01b81526004016104f99392919061091d565b600060405180830381600087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061057461056f61056a8461052f565b61054f565b61052f565b9050919050565b600061058682610559565b9050919050565b60006105988261057b565b9050919050565b6105a88161058d565b82525050565b60006020820190506105c3600083018461059f565b92915050565b600080fd5b6000819050919050565b6105e1816105ce565b81146105ec57600080fd5b50565b6000813590506105fe816105d8565b92915050565b600061060f8261052f565b9050919050565b600061062182610604565b9050919050565b61063181610616565b811461063c57600080fd5b50565b60008135905061064e81610628565b92915050565b6000806040838503121561066b5761066a6105c9565b5b6000610679858286016105ef565b925050602061068a8582860161063f565b9150509250929050565b600063ffffffff82169050919050565b6106ad81610694565b82525050565b60006020820190506106c860008301846106a4565b92915050565b60006106d98261057b565b9050919050565b6106e9816106ce565b82525050565b600060208201905061070460008301846106e0565b92915050565b61071381610604565b811461071e57600080fd5b50565b6000813590506107308161070a565b92915050565b6000806040838503121561074d5761074c6105c9565b5b600061075b85828601610721565b925050602061076c858286016105ef565b9150509250929050565b61077f81610604565b82525050565b600060208201905061079a6000830184610776565b92915050565b6107a9816105ce565b82525050565b60006020820190506107c460008301846107a0565b92915050565b6000815190506107d98161070a565b92915050565b6000602082840312156107f5576107f46105c9565b5b6000610803848285016107ca565b91505092915050565b60006040820190506108216000830185610776565b61082e60208301846107a0565b9392505050565b60006108408261057b565b9050919050565b61085081610835565b82525050565b600060608201905061086b6000830186610776565b61087860208301856107a0565b6108856040830184610847565b949350505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156108c75780820151818401526020810190506108ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006108ef8261088d565b6108f98185610898565b93506109098185602086016108a9565b610912816108d3565b840191505092915050565b60006060820190506109326000830186610776565b818103602083015261094481856108e4565b905061095360408301846106a4565b94935050505056fea2646970667358221220ccb7ae8c76686b1ef08eec45cda40eefd39ad881e80a81dc9c5881e1998a769764736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xB67 CODESIZE SUB DUP1 PUSH2 0xB67 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x149 JUMP JUMPDEST DUP2 DUP2 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP POP PUSH2 0x19C JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP3 PUSH2 0xEB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x126 DUP2 PUSH2 0x10B JUMP JUMPDEST DUP2 EQ PUSH2 0x131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x143 DUP2 PUSH2 0x11D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x162 JUMPI PUSH2 0x161 PUSH2 0xE6 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x170 DUP7 DUP3 DUP8 ADD PUSH2 0x134 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x181 DUP7 DUP3 DUP8 ADD PUSH2 0x134 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x192 DUP7 DUP3 DUP8 ADD PUSH2 0x134 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x991 PUSH2 0x1D6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x19A ADD MSTORE PUSH2 0x21C ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x152 ADD MSTORE DUP2 DUP2 PUSH2 0x314 ADD MSTORE PUSH2 0x424 ADD MSTORE PUSH2 0x991 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 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D73B231 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7D73B231 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xC03799DB EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0xD9E63A89 EQ PUSH2 0x132 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x95F025E EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x4C7464CF EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x77A50701 EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x150 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x654 JUMP JUMPDEST PUSH2 0x174 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC4 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP2 SWAP1 PUSH2 0x6B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x198 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0x736 JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x1D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x785 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13A PUSH2 0x1FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x147 SWAP2 SWAP1 PUSH2 0x6B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST CALLER DUP3 PUSH2 0x180 DUP3 DUP3 PUSH2 0x203 JUMP JUMPDEST PUSH2 0x18B CALLER DUP6 DUP6 PUSH2 0x312 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH3 0x30D40 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP2 DUP2 PUSH2 0x1C8 DUP3 DUP3 PUSH2 0x203 JUMP JUMPDEST PUSH2 0x1D2 DUP5 DUP5 PUSH2 0x422 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH3 0x493E0 DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2571BE3 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x7DF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x30E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x36B8521000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP3 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3DBB202B PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x384 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0xDD738E6C PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH3 0x493E0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3DBB202B PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x492 SWAP3 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0xA8C00861 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH3 0x30D40 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4F9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x574 PUSH2 0x56F PUSH2 0x56A DUP5 PUSH2 0x52F JUMP JUMPDEST PUSH2 0x54F JUMP JUMPDEST PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP3 PUSH2 0x559 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x598 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5A8 DUP2 PUSH2 0x58D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x59F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5E1 DUP2 PUSH2 0x5CE JUMP JUMPDEST DUP2 EQ PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5FE DUP2 PUSH2 0x5D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60F DUP3 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621 DUP3 PUSH2 0x604 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x631 DUP2 PUSH2 0x616 JUMP JUMPDEST DUP2 EQ PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x64E DUP2 PUSH2 0x628 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x66B JUMPI PUSH2 0x66A PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x679 DUP6 DUP3 DUP7 ADD PUSH2 0x5EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x68A DUP6 DUP3 DUP7 ADD PUSH2 0x63F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6AD DUP2 PUSH2 0x694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6C8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E9 DUP2 PUSH2 0x6CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x704 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x713 DUP2 PUSH2 0x604 JUMP JUMPDEST DUP2 EQ PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x730 DUP2 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x74D JUMPI PUSH2 0x74C PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x75B DUP6 DUP3 DUP7 ADD PUSH2 0x721 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x76C DUP6 DUP3 DUP7 ADD PUSH2 0x5EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x77F DUP2 PUSH2 0x604 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x79A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x776 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A9 DUP2 PUSH2 0x5CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7C4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D9 DUP2 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x803 DUP5 DUP3 DUP6 ADD PUSH2 0x7CA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x821 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x776 JUMP JUMPDEST PUSH2 0x82E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7A0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x840 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x850 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x86B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x776 JUMP JUMPDEST PUSH2 0x878 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7A0 JUMP JUMPDEST PUSH2 0x885 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x847 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8C7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8AC 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 0x8EF DUP3 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x8F9 DUP2 DUP6 PUSH2 0x898 JUMP JUMPDEST SWAP4 POP PUSH2 0x909 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8A9 JUMP JUMPDEST PUSH2 0x912 DUP2 PUSH2 0x8D3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x932 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x776 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x944 DUP2 DUP6 PUSH2 0x8E4 JUMP JUMPDEST SWAP1 POP PUSH2 0x953 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCC 0xB7 0xAE DUP13 PUSH23 0x686B1EF08EEC45CDA40EEFD39AD881E80A81DC9C5881E1 SWAP10 DUP11 PUSH23 0x9764736F6C634300081C00330000000000000000000000 ","sourceMap":"615:2844:35:-:0;;;1636:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1785:12;1799:27;1516:21:37;1471:67;;;;;;;;;;1566:16;1548:15;;:34;;;;;;;;;;;;;;;;;;1392:197;;1856:12:35::1;1838:31;;;;;;;;::::0;::::1;1636:240:::0;;;615:2844;;88:117:44;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:663::-;933:6;941;949;998:2;986:9;977:7;973:23;969:32;966:119;;;1004:79;;:::i;:::-;966:119;1124:1;1149:64;1205:7;1196:6;1185:9;1181:22;1149:64;:::i;:::-;1139:74;;1095:128;1262:2;1288:64;1344:7;1335:6;1324:9;1320:22;1288:64;:::i;:::-;1278:74;;1233:129;1401:2;1427:64;1483:7;1474:6;1463:9;1459:22;1427:64;:::i;:::-;1417:74;;1372:129;845:663;;;;;:::o;615:2844:35:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@REGISTER_DOMAIN_GAS_LIMIT_7645":{"entryPoint":401,"id":7645,"parameterSlots":0,"returnSlots":0},"@REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT_7648":{"entryPoint":508,"id":7648,"parameterSlots":0,"returnSlots":0},"@_checkEnsOwner_7544":{"entryPoint":515,"id":7544,"parameterSlots":2,"returnSlots":0},"@_registerDomainCrossChain_7691":{"entryPoint":1058,"id":7691,"parameterSlots":2,"returnSlots":0},"@_registerDomainWithVerifierCrossChain_7719":{"entryPoint":786,"id":7719,"parameterSlots":3,"returnSlots":0},"@crossDomainMessanger_7640":{"entryPoint":336,"id":7640,"parameterSlots":0,"returnSlots":0},"@ensRegistry_7440":{"entryPoint":408,"id":7440,"parameterSlots":0,"returnSlots":0},"@registerDomainWithVerifier_7522":{"entryPoint":372,"id":7522,"parameterSlots":2,"returnSlots":0},"@registerDomain_7500":{"entryPoint":444,"id":7500,"parameterSlots":2,"returnSlots":0},"@targetRegistrar_7642":{"entryPoint":472,"id":7642,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":1825,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":1519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IVerifier_$8474":{"entryPoint":1599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":2015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":1846,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474":{"entryPoint":1620,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1910,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1952,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2276,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_ENS_$136_to_t_address_fromStack":{"entryPoint":1760,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack":{"entryPoint":1439,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack":{"entryPoint":2119,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":1700,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1925,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":2060,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed":{"entryPoint":2134,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__fromStack_reversed":{"entryPoint":2333,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":1967,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed":{"entryPoint":1775,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed":{"entryPoint":1454,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":1715,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2189,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2200,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":1540,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1486,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IVerifier_$8474":{"entryPoint":1558,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1327,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":1684,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ENS_$136_to_t_address":{"entryPoint":1742,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address":{"entryPoint":1421,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IVerifier_$8474_to_t_address":{"entryPoint":2101,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":1403,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":1369,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2217,"id":null,"parameterSlots":3,"returnSlots":0},"identity":{"entryPoint":1359,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1481,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2259,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":1802,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":1496,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IVerifier_$8474":{"entryPoint":1576,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:8549:44","nodeType":"YulBlock","src":"0:8549:44","statements":[{"body":{"nativeSrc":"52:81:44","nodeType":"YulBlock","src":"52:81:44","statements":[{"nativeSrc":"62:65:44","nodeType":"YulAssignment","src":"62:65:44","value":{"arguments":[{"name":"value","nativeSrc":"77:5:44","nodeType":"YulIdentifier","src":"77:5:44"},{"kind":"number","nativeSrc":"84:42:44","nodeType":"YulLiteral","src":"84:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"73:3:44","nodeType":"YulIdentifier","src":"73:3:44"},"nativeSrc":"73:54:44","nodeType":"YulFunctionCall","src":"73:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"62:7:44","nodeType":"YulIdentifier","src":"62:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"7:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34:5:44","nodeType":"YulTypedName","src":"34:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"44:7:44","nodeType":"YulTypedName","src":"44:7:44","type":""}],"src":"7:126:44"},{"body":{"nativeSrc":"171:28:44","nodeType":"YulBlock","src":"171:28:44","statements":[{"nativeSrc":"181:12:44","nodeType":"YulAssignment","src":"181:12:44","value":{"name":"value","nativeSrc":"188:5:44","nodeType":"YulIdentifier","src":"188:5:44"},"variableNames":[{"name":"ret","nativeSrc":"181:3:44","nodeType":"YulIdentifier","src":"181:3:44"}]}]},"name":"identity","nativeSrc":"139:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"157:5:44","nodeType":"YulTypedName","src":"157:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"167:3:44","nodeType":"YulTypedName","src":"167:3:44","type":""}],"src":"139:60:44"},{"body":{"nativeSrc":"265:82:44","nodeType":"YulBlock","src":"265:82:44","statements":[{"nativeSrc":"275:66:44","nodeType":"YulAssignment","src":"275:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"333:5:44","nodeType":"YulIdentifier","src":"333:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"315:17:44","nodeType":"YulIdentifier","src":"315:17:44"},"nativeSrc":"315:24:44","nodeType":"YulFunctionCall","src":"315:24:44"}],"functionName":{"name":"identity","nativeSrc":"306:8:44","nodeType":"YulIdentifier","src":"306:8:44"},"nativeSrc":"306:34:44","nodeType":"YulFunctionCall","src":"306:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"288:17:44","nodeType":"YulIdentifier","src":"288:17:44"},"nativeSrc":"288:53:44","nodeType":"YulFunctionCall","src":"288:53:44"},"variableNames":[{"name":"converted","nativeSrc":"275:9:44","nodeType":"YulIdentifier","src":"275:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"205:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"245:5:44","nodeType":"YulTypedName","src":"245:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"255:9:44","nodeType":"YulTypedName","src":"255:9:44","type":""}],"src":"205:142:44"},{"body":{"nativeSrc":"413:66:44","nodeType":"YulBlock","src":"413:66:44","statements":[{"nativeSrc":"423:50:44","nodeType":"YulAssignment","src":"423:50:44","value":{"arguments":[{"name":"value","nativeSrc":"467:5:44","nodeType":"YulIdentifier","src":"467:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"436:30:44","nodeType":"YulIdentifier","src":"436:30:44"},"nativeSrc":"436:37:44","nodeType":"YulFunctionCall","src":"436:37:44"},"variableNames":[{"name":"converted","nativeSrc":"423:9:44","nodeType":"YulIdentifier","src":"423:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"353:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"393:5:44","nodeType":"YulTypedName","src":"393:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"403:9:44","nodeType":"YulTypedName","src":"403:9:44","type":""}],"src":"353:126:44"},{"body":{"nativeSrc":"575:66:44","nodeType":"YulBlock","src":"575:66:44","statements":[{"nativeSrc":"585:50:44","nodeType":"YulAssignment","src":"585:50:44","value":{"arguments":[{"name":"value","nativeSrc":"629:5:44","nodeType":"YulIdentifier","src":"629:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"598:30:44","nodeType":"YulIdentifier","src":"598:30:44"},"nativeSrc":"598:37:44","nodeType":"YulFunctionCall","src":"598:37:44"},"variableNames":[{"name":"converted","nativeSrc":"585:9:44","nodeType":"YulIdentifier","src":"585:9:44"}]}]},"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"485:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"555:5:44","nodeType":"YulTypedName","src":"555:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"565:9:44","nodeType":"YulTypedName","src":"565:9:44","type":""}],"src":"485:156:44"},{"body":{"nativeSrc":"742:96:44","nodeType":"YulBlock","src":"742:96:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"759:3:44","nodeType":"YulIdentifier","src":"759:3:44"},{"arguments":[{"name":"value","nativeSrc":"825:5:44","nodeType":"YulIdentifier","src":"825:5:44"}],"functionName":{"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"764:60:44","nodeType":"YulIdentifier","src":"764:60:44"},"nativeSrc":"764:67:44","nodeType":"YulFunctionCall","src":"764:67:44"}],"functionName":{"name":"mstore","nativeSrc":"752:6:44","nodeType":"YulIdentifier","src":"752:6:44"},"nativeSrc":"752:80:44","nodeType":"YulFunctionCall","src":"752:80:44"},"nativeSrc":"752:80:44","nodeType":"YulExpressionStatement","src":"752:80:44"}]},"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"647:191:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"730:5:44","nodeType":"YulTypedName","src":"730:5:44","type":""},{"name":"pos","nativeSrc":"737:3:44","nodeType":"YulTypedName","src":"737:3:44","type":""}],"src":"647:191:44"},{"body":{"nativeSrc":"972:154:44","nodeType":"YulBlock","src":"972:154:44","statements":[{"nativeSrc":"982:26:44","nodeType":"YulAssignment","src":"982:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"994:9:44","nodeType":"YulIdentifier","src":"994:9:44"},{"kind":"number","nativeSrc":"1005:2:44","nodeType":"YulLiteral","src":"1005:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"990:3:44","nodeType":"YulIdentifier","src":"990:3:44"},"nativeSrc":"990:18:44","nodeType":"YulFunctionCall","src":"990:18:44"},"variableNames":[{"name":"tail","nativeSrc":"982:4:44","nodeType":"YulIdentifier","src":"982:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1092:6:44","nodeType":"YulIdentifier","src":"1092:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1105:9:44","nodeType":"YulIdentifier","src":"1105:9:44"},{"kind":"number","nativeSrc":"1116:1:44","nodeType":"YulLiteral","src":"1116:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1101:3:44","nodeType":"YulIdentifier","src":"1101:3:44"},"nativeSrc":"1101:17:44","nodeType":"YulFunctionCall","src":"1101:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"1018:73:44","nodeType":"YulIdentifier","src":"1018:73:44"},"nativeSrc":"1018:101:44","nodeType":"YulFunctionCall","src":"1018:101:44"},"nativeSrc":"1018:101:44","nodeType":"YulExpressionStatement","src":"1018:101:44"}]},"name":"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed","nativeSrc":"844:282:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"944:9:44","nodeType":"YulTypedName","src":"944:9:44","type":""},{"name":"value0","nativeSrc":"956:6:44","nodeType":"YulTypedName","src":"956:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"967:4:44","nodeType":"YulTypedName","src":"967:4:44","type":""}],"src":"844:282:44"},{"body":{"nativeSrc":"1172:35:44","nodeType":"YulBlock","src":"1172:35:44","statements":[{"nativeSrc":"1182:19:44","nodeType":"YulAssignment","src":"1182:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"1198:2:44","nodeType":"YulLiteral","src":"1198:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1192:5:44","nodeType":"YulIdentifier","src":"1192:5:44"},"nativeSrc":"1192:9:44","nodeType":"YulFunctionCall","src":"1192:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"1182:6:44","nodeType":"YulIdentifier","src":"1182:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"1132:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1165:6:44","nodeType":"YulTypedName","src":"1165:6:44","type":""}],"src":"1132:75:44"},{"body":{"nativeSrc":"1302:28:44","nodeType":"YulBlock","src":"1302:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1319:1:44","nodeType":"YulLiteral","src":"1319:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1322:1:44","nodeType":"YulLiteral","src":"1322:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1312:6:44","nodeType":"YulIdentifier","src":"1312:6:44"},"nativeSrc":"1312:12:44","nodeType":"YulFunctionCall","src":"1312:12:44"},"nativeSrc":"1312:12:44","nodeType":"YulExpressionStatement","src":"1312:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1213:117:44","nodeType":"YulFunctionDefinition","src":"1213:117:44"},{"body":{"nativeSrc":"1425:28:44","nodeType":"YulBlock","src":"1425:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1442:1:44","nodeType":"YulLiteral","src":"1442:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1445:1:44","nodeType":"YulLiteral","src":"1445:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1435:6:44","nodeType":"YulIdentifier","src":"1435:6:44"},"nativeSrc":"1435:12:44","nodeType":"YulFunctionCall","src":"1435:12:44"},"nativeSrc":"1435:12:44","nodeType":"YulExpressionStatement","src":"1435:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1336:117:44","nodeType":"YulFunctionDefinition","src":"1336:117:44"},{"body":{"nativeSrc":"1504:32:44","nodeType":"YulBlock","src":"1504:32:44","statements":[{"nativeSrc":"1514:16:44","nodeType":"YulAssignment","src":"1514:16:44","value":{"name":"value","nativeSrc":"1525:5:44","nodeType":"YulIdentifier","src":"1525:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1514:7:44","nodeType":"YulIdentifier","src":"1514:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1459:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1486:5:44","nodeType":"YulTypedName","src":"1486:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1496:7:44","nodeType":"YulTypedName","src":"1496:7:44","type":""}],"src":"1459:77:44"},{"body":{"nativeSrc":"1585:79:44","nodeType":"YulBlock","src":"1585:79:44","statements":[{"body":{"nativeSrc":"1642:16:44","nodeType":"YulBlock","src":"1642:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1651:1:44","nodeType":"YulLiteral","src":"1651:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1654:1:44","nodeType":"YulLiteral","src":"1654:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1644:6:44","nodeType":"YulIdentifier","src":"1644:6:44"},"nativeSrc":"1644:12:44","nodeType":"YulFunctionCall","src":"1644:12:44"},"nativeSrc":"1644:12:44","nodeType":"YulExpressionStatement","src":"1644:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1608:5:44","nodeType":"YulIdentifier","src":"1608:5:44"},{"arguments":[{"name":"value","nativeSrc":"1633:5:44","nodeType":"YulIdentifier","src":"1633:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"1615:17:44","nodeType":"YulIdentifier","src":"1615:17:44"},"nativeSrc":"1615:24:44","nodeType":"YulFunctionCall","src":"1615:24:44"}],"functionName":{"name":"eq","nativeSrc":"1605:2:44","nodeType":"YulIdentifier","src":"1605:2:44"},"nativeSrc":"1605:35:44","nodeType":"YulFunctionCall","src":"1605:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1598:6:44","nodeType":"YulIdentifier","src":"1598:6:44"},"nativeSrc":"1598:43:44","nodeType":"YulFunctionCall","src":"1598:43:44"},"nativeSrc":"1595:63:44","nodeType":"YulIf","src":"1595:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"1542:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1578:5:44","nodeType":"YulTypedName","src":"1578:5:44","type":""}],"src":"1542:122:44"},{"body":{"nativeSrc":"1722:87:44","nodeType":"YulBlock","src":"1722:87:44","statements":[{"nativeSrc":"1732:29:44","nodeType":"YulAssignment","src":"1732:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1754:6:44","nodeType":"YulIdentifier","src":"1754:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1741:12:44","nodeType":"YulIdentifier","src":"1741:12:44"},"nativeSrc":"1741:20:44","nodeType":"YulFunctionCall","src":"1741:20:44"},"variableNames":[{"name":"value","nativeSrc":"1732:5:44","nodeType":"YulIdentifier","src":"1732:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1797:5:44","nodeType":"YulIdentifier","src":"1797:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"1770:26:44","nodeType":"YulIdentifier","src":"1770:26:44"},"nativeSrc":"1770:33:44","nodeType":"YulFunctionCall","src":"1770:33:44"},"nativeSrc":"1770:33:44","nodeType":"YulExpressionStatement","src":"1770:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"1670:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1700:6:44","nodeType":"YulTypedName","src":"1700:6:44","type":""},{"name":"end","nativeSrc":"1708:3:44","nodeType":"YulTypedName","src":"1708:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1716:5:44","nodeType":"YulTypedName","src":"1716:5:44","type":""}],"src":"1670:139:44"},{"body":{"nativeSrc":"1860:51:44","nodeType":"YulBlock","src":"1860:51:44","statements":[{"nativeSrc":"1870:35:44","nodeType":"YulAssignment","src":"1870:35:44","value":{"arguments":[{"name":"value","nativeSrc":"1899:5:44","nodeType":"YulIdentifier","src":"1899:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1881:17:44","nodeType":"YulIdentifier","src":"1881:17:44"},"nativeSrc":"1881:24:44","nodeType":"YulFunctionCall","src":"1881:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1870:7:44","nodeType":"YulIdentifier","src":"1870:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"1815:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1842:5:44","nodeType":"YulTypedName","src":"1842:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1852:7:44","nodeType":"YulTypedName","src":"1852:7:44","type":""}],"src":"1815:96:44"},{"body":{"nativeSrc":"1980:51:44","nodeType":"YulBlock","src":"1980:51:44","statements":[{"nativeSrc":"1990:35:44","nodeType":"YulAssignment","src":"1990:35:44","value":{"arguments":[{"name":"value","nativeSrc":"2019:5:44","nodeType":"YulIdentifier","src":"2019:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2001:17:44","nodeType":"YulIdentifier","src":"2001:17:44"},"nativeSrc":"2001:24:44","nodeType":"YulFunctionCall","src":"2001:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1990:7:44","nodeType":"YulIdentifier","src":"1990:7:44"}]}]},"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"1917:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1962:5:44","nodeType":"YulTypedName","src":"1962:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1972:7:44","nodeType":"YulTypedName","src":"1972:7:44","type":""}],"src":"1917:114:44"},{"body":{"nativeSrc":"2098:97:44","nodeType":"YulBlock","src":"2098:97:44","statements":[{"body":{"nativeSrc":"2173:16:44","nodeType":"YulBlock","src":"2173:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2182:1:44","nodeType":"YulLiteral","src":"2182:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2185:1:44","nodeType":"YulLiteral","src":"2185:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2175:6:44","nodeType":"YulIdentifier","src":"2175:6:44"},"nativeSrc":"2175:12:44","nodeType":"YulFunctionCall","src":"2175:12:44"},"nativeSrc":"2175:12:44","nodeType":"YulExpressionStatement","src":"2175:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2121:5:44","nodeType":"YulIdentifier","src":"2121:5:44"},{"arguments":[{"name":"value","nativeSrc":"2164:5:44","nodeType":"YulIdentifier","src":"2164:5:44"}],"functionName":{"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"2128:35:44","nodeType":"YulIdentifier","src":"2128:35:44"},"nativeSrc":"2128:42:44","nodeType":"YulFunctionCall","src":"2128:42:44"}],"functionName":{"name":"eq","nativeSrc":"2118:2:44","nodeType":"YulIdentifier","src":"2118:2:44"},"nativeSrc":"2118:53:44","nodeType":"YulFunctionCall","src":"2118:53:44"}],"functionName":{"name":"iszero","nativeSrc":"2111:6:44","nodeType":"YulIdentifier","src":"2111:6:44"},"nativeSrc":"2111:61:44","nodeType":"YulFunctionCall","src":"2111:61:44"},"nativeSrc":"2108:81:44","nodeType":"YulIf","src":"2108:81:44"}]},"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"2037:158:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2091:5:44","nodeType":"YulTypedName","src":"2091:5:44","type":""}],"src":"2037:158:44"},{"body":{"nativeSrc":"2271:105:44","nodeType":"YulBlock","src":"2271:105:44","statements":[{"nativeSrc":"2281:29:44","nodeType":"YulAssignment","src":"2281:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"2303:6:44","nodeType":"YulIdentifier","src":"2303:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"2290:12:44","nodeType":"YulIdentifier","src":"2290:12:44"},"nativeSrc":"2290:20:44","nodeType":"YulFunctionCall","src":"2290:20:44"},"variableNames":[{"name":"value","nativeSrc":"2281:5:44","nodeType":"YulIdentifier","src":"2281:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2364:5:44","nodeType":"YulIdentifier","src":"2364:5:44"}],"functionName":{"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"2319:44:44","nodeType":"YulIdentifier","src":"2319:44:44"},"nativeSrc":"2319:51:44","nodeType":"YulFunctionCall","src":"2319:51:44"},"nativeSrc":"2319:51:44","nodeType":"YulExpressionStatement","src":"2319:51:44"}]},"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"2201:175:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2249:6:44","nodeType":"YulTypedName","src":"2249:6:44","type":""},{"name":"end","nativeSrc":"2257:3:44","nodeType":"YulTypedName","src":"2257:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2265:5:44","nodeType":"YulTypedName","src":"2265:5:44","type":""}],"src":"2201:175:44"},{"body":{"nativeSrc":"2483:409:44","nodeType":"YulBlock","src":"2483:409:44","statements":[{"body":{"nativeSrc":"2529:83:44","nodeType":"YulBlock","src":"2529:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2531:77:44","nodeType":"YulIdentifier","src":"2531:77:44"},"nativeSrc":"2531:79:44","nodeType":"YulFunctionCall","src":"2531:79:44"},"nativeSrc":"2531:79:44","nodeType":"YulExpressionStatement","src":"2531:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2504:7:44","nodeType":"YulIdentifier","src":"2504:7:44"},{"name":"headStart","nativeSrc":"2513:9:44","nodeType":"YulIdentifier","src":"2513:9:44"}],"functionName":{"name":"sub","nativeSrc":"2500:3:44","nodeType":"YulIdentifier","src":"2500:3:44"},"nativeSrc":"2500:23:44","nodeType":"YulFunctionCall","src":"2500:23:44"},{"kind":"number","nativeSrc":"2525:2:44","nodeType":"YulLiteral","src":"2525:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2496:3:44","nodeType":"YulIdentifier","src":"2496:3:44"},"nativeSrc":"2496:32:44","nodeType":"YulFunctionCall","src":"2496:32:44"},"nativeSrc":"2493:119:44","nodeType":"YulIf","src":"2493:119:44"},{"nativeSrc":"2622:117:44","nodeType":"YulBlock","src":"2622:117:44","statements":[{"nativeSrc":"2637:15:44","nodeType":"YulVariableDeclaration","src":"2637:15:44","value":{"kind":"number","nativeSrc":"2651:1:44","nodeType":"YulLiteral","src":"2651:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2641:6:44","nodeType":"YulTypedName","src":"2641:6:44","type":""}]},{"nativeSrc":"2666:63:44","nodeType":"YulAssignment","src":"2666:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2701:9:44","nodeType":"YulIdentifier","src":"2701:9:44"},{"name":"offset","nativeSrc":"2712:6:44","nodeType":"YulIdentifier","src":"2712:6:44"}],"functionName":{"name":"add","nativeSrc":"2697:3:44","nodeType":"YulIdentifier","src":"2697:3:44"},"nativeSrc":"2697:22:44","nodeType":"YulFunctionCall","src":"2697:22:44"},{"name":"dataEnd","nativeSrc":"2721:7:44","nodeType":"YulIdentifier","src":"2721:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2676:20:44","nodeType":"YulIdentifier","src":"2676:20:44"},"nativeSrc":"2676:53:44","nodeType":"YulFunctionCall","src":"2676:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2666:6:44","nodeType":"YulIdentifier","src":"2666:6:44"}]}]},{"nativeSrc":"2749:136:44","nodeType":"YulBlock","src":"2749:136:44","statements":[{"nativeSrc":"2764:16:44","nodeType":"YulVariableDeclaration","src":"2764:16:44","value":{"kind":"number","nativeSrc":"2778:2:44","nodeType":"YulLiteral","src":"2778:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2768:6:44","nodeType":"YulTypedName","src":"2768:6:44","type":""}]},{"nativeSrc":"2794:81:44","nodeType":"YulAssignment","src":"2794:81:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2847:9:44","nodeType":"YulIdentifier","src":"2847:9:44"},{"name":"offset","nativeSrc":"2858:6:44","nodeType":"YulIdentifier","src":"2858:6:44"}],"functionName":{"name":"add","nativeSrc":"2843:3:44","nodeType":"YulIdentifier","src":"2843:3:44"},"nativeSrc":"2843:22:44","nodeType":"YulFunctionCall","src":"2843:22:44"},{"name":"dataEnd","nativeSrc":"2867:7:44","nodeType":"YulIdentifier","src":"2867:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"2804:38:44","nodeType":"YulIdentifier","src":"2804:38:44"},"nativeSrc":"2804:71:44","nodeType":"YulFunctionCall","src":"2804:71:44"},"variableNames":[{"name":"value1","nativeSrc":"2794:6:44","nodeType":"YulIdentifier","src":"2794:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474","nativeSrc":"2382:510:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2445:9:44","nodeType":"YulTypedName","src":"2445:9:44","type":""},{"name":"dataEnd","nativeSrc":"2456:7:44","nodeType":"YulTypedName","src":"2456:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2468:6:44","nodeType":"YulTypedName","src":"2468:6:44","type":""},{"name":"value1","nativeSrc":"2476:6:44","nodeType":"YulTypedName","src":"2476:6:44","type":""}],"src":"2382:510:44"},{"body":{"nativeSrc":"2942:49:44","nodeType":"YulBlock","src":"2942:49:44","statements":[{"nativeSrc":"2952:33:44","nodeType":"YulAssignment","src":"2952:33:44","value":{"arguments":[{"name":"value","nativeSrc":"2967:5:44","nodeType":"YulIdentifier","src":"2967:5:44"},{"kind":"number","nativeSrc":"2974:10:44","nodeType":"YulLiteral","src":"2974:10:44","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nativeSrc":"2963:3:44","nodeType":"YulIdentifier","src":"2963:3:44"},"nativeSrc":"2963:22:44","nodeType":"YulFunctionCall","src":"2963:22:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2952:7:44","nodeType":"YulIdentifier","src":"2952:7:44"}]}]},"name":"cleanup_t_uint32","nativeSrc":"2898:93:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2924:5:44","nodeType":"YulTypedName","src":"2924:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2934:7:44","nodeType":"YulTypedName","src":"2934:7:44","type":""}],"src":"2898:93:44"},{"body":{"nativeSrc":"3060:52:44","nodeType":"YulBlock","src":"3060:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3077:3:44","nodeType":"YulIdentifier","src":"3077:3:44"},{"arguments":[{"name":"value","nativeSrc":"3099:5:44","nodeType":"YulIdentifier","src":"3099:5:44"}],"functionName":{"name":"cleanup_t_uint32","nativeSrc":"3082:16:44","nodeType":"YulIdentifier","src":"3082:16:44"},"nativeSrc":"3082:23:44","nodeType":"YulFunctionCall","src":"3082:23:44"}],"functionName":{"name":"mstore","nativeSrc":"3070:6:44","nodeType":"YulIdentifier","src":"3070:6:44"},"nativeSrc":"3070:36:44","nodeType":"YulFunctionCall","src":"3070:36:44"},"nativeSrc":"3070:36:44","nodeType":"YulExpressionStatement","src":"3070:36:44"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"2997:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3048:5:44","nodeType":"YulTypedName","src":"3048:5:44","type":""},{"name":"pos","nativeSrc":"3055:3:44","nodeType":"YulTypedName","src":"3055:3:44","type":""}],"src":"2997:115:44"},{"body":{"nativeSrc":"3214:122:44","nodeType":"YulBlock","src":"3214:122:44","statements":[{"nativeSrc":"3224:26:44","nodeType":"YulAssignment","src":"3224:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"3236:9:44","nodeType":"YulIdentifier","src":"3236:9:44"},{"kind":"number","nativeSrc":"3247:2:44","nodeType":"YulLiteral","src":"3247:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3232:3:44","nodeType":"YulIdentifier","src":"3232:3:44"},"nativeSrc":"3232:18:44","nodeType":"YulFunctionCall","src":"3232:18:44"},"variableNames":[{"name":"tail","nativeSrc":"3224:4:44","nodeType":"YulIdentifier","src":"3224:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3302:6:44","nodeType":"YulIdentifier","src":"3302:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3315:9:44","nodeType":"YulIdentifier","src":"3315:9:44"},{"kind":"number","nativeSrc":"3326:1:44","nodeType":"YulLiteral","src":"3326:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3311:3:44","nodeType":"YulIdentifier","src":"3311:3:44"},"nativeSrc":"3311:17:44","nodeType":"YulFunctionCall","src":"3311:17:44"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"3260:41:44","nodeType":"YulIdentifier","src":"3260:41:44"},"nativeSrc":"3260:69:44","nodeType":"YulFunctionCall","src":"3260:69:44"},"nativeSrc":"3260:69:44","nodeType":"YulExpressionStatement","src":"3260:69:44"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nativeSrc":"3118:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3186:9:44","nodeType":"YulTypedName","src":"3186:9:44","type":""},{"name":"value0","nativeSrc":"3198:6:44","nodeType":"YulTypedName","src":"3198:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3209:4:44","nodeType":"YulTypedName","src":"3209:4:44","type":""}],"src":"3118:218:44"},{"body":{"nativeSrc":"3413:66:44","nodeType":"YulBlock","src":"3413:66:44","statements":[{"nativeSrc":"3423:50:44","nodeType":"YulAssignment","src":"3423:50:44","value":{"arguments":[{"name":"value","nativeSrc":"3467:5:44","nodeType":"YulIdentifier","src":"3467:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3436:30:44","nodeType":"YulIdentifier","src":"3436:30:44"},"nativeSrc":"3436:37:44","nodeType":"YulFunctionCall","src":"3436:37:44"},"variableNames":[{"name":"converted","nativeSrc":"3423:9:44","nodeType":"YulIdentifier","src":"3423:9:44"}]}]},"name":"convert_t_contract$_ENS_$136_to_t_address","nativeSrc":"3342:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3393:5:44","nodeType":"YulTypedName","src":"3393:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3403:9:44","nodeType":"YulTypedName","src":"3403:9:44","type":""}],"src":"3342:137:44"},{"body":{"nativeSrc":"3561:77:44","nodeType":"YulBlock","src":"3561:77:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3578:3:44","nodeType":"YulIdentifier","src":"3578:3:44"},{"arguments":[{"name":"value","nativeSrc":"3625:5:44","nodeType":"YulIdentifier","src":"3625:5:44"}],"functionName":{"name":"convert_t_contract$_ENS_$136_to_t_address","nativeSrc":"3583:41:44","nodeType":"YulIdentifier","src":"3583:41:44"},"nativeSrc":"3583:48:44","nodeType":"YulFunctionCall","src":"3583:48:44"}],"functionName":{"name":"mstore","nativeSrc":"3571:6:44","nodeType":"YulIdentifier","src":"3571:6:44"},"nativeSrc":"3571:61:44","nodeType":"YulFunctionCall","src":"3571:61:44"},"nativeSrc":"3571:61:44","nodeType":"YulExpressionStatement","src":"3571:61:44"}]},"name":"abi_encode_t_contract$_ENS_$136_to_t_address_fromStack","nativeSrc":"3485:153:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3549:5:44","nodeType":"YulTypedName","src":"3549:5:44","type":""},{"name":"pos","nativeSrc":"3556:3:44","nodeType":"YulTypedName","src":"3556:3:44","type":""}],"src":"3485:153:44"},{"body":{"nativeSrc":"3753:135:44","nodeType":"YulBlock","src":"3753:135:44","statements":[{"nativeSrc":"3763:26:44","nodeType":"YulAssignment","src":"3763:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"3775:9:44","nodeType":"YulIdentifier","src":"3775:9:44"},{"kind":"number","nativeSrc":"3786:2:44","nodeType":"YulLiteral","src":"3786:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3771:3:44","nodeType":"YulIdentifier","src":"3771:3:44"},"nativeSrc":"3771:18:44","nodeType":"YulFunctionCall","src":"3771:18:44"},"variableNames":[{"name":"tail","nativeSrc":"3763:4:44","nodeType":"YulIdentifier","src":"3763:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3854:6:44","nodeType":"YulIdentifier","src":"3854:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3867:9:44","nodeType":"YulIdentifier","src":"3867:9:44"},{"kind":"number","nativeSrc":"3878:1:44","nodeType":"YulLiteral","src":"3878:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3863:3:44","nodeType":"YulIdentifier","src":"3863:3:44"},"nativeSrc":"3863:17:44","nodeType":"YulFunctionCall","src":"3863:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ENS_$136_to_t_address_fromStack","nativeSrc":"3799:54:44","nodeType":"YulIdentifier","src":"3799:54:44"},"nativeSrc":"3799:82:44","nodeType":"YulFunctionCall","src":"3799:82:44"},"nativeSrc":"3799:82:44","nodeType":"YulExpressionStatement","src":"3799:82:44"}]},"name":"abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed","nativeSrc":"3644:244:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3725:9:44","nodeType":"YulTypedName","src":"3725:9:44","type":""},{"name":"value0","nativeSrc":"3737:6:44","nodeType":"YulTypedName","src":"3737:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3748:4:44","nodeType":"YulTypedName","src":"3748:4:44","type":""}],"src":"3644:244:44"},{"body":{"nativeSrc":"3937:79:44","nodeType":"YulBlock","src":"3937:79:44","statements":[{"body":{"nativeSrc":"3994:16:44","nodeType":"YulBlock","src":"3994:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4003:1:44","nodeType":"YulLiteral","src":"4003:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"4006:1:44","nodeType":"YulLiteral","src":"4006:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3996:6:44","nodeType":"YulIdentifier","src":"3996:6:44"},"nativeSrc":"3996:12:44","nodeType":"YulFunctionCall","src":"3996:12:44"},"nativeSrc":"3996:12:44","nodeType":"YulExpressionStatement","src":"3996:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3960:5:44","nodeType":"YulIdentifier","src":"3960:5:44"},{"arguments":[{"name":"value","nativeSrc":"3985:5:44","nodeType":"YulIdentifier","src":"3985:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3967:17:44","nodeType":"YulIdentifier","src":"3967:17:44"},"nativeSrc":"3967:24:44","nodeType":"YulFunctionCall","src":"3967:24:44"}],"functionName":{"name":"eq","nativeSrc":"3957:2:44","nodeType":"YulIdentifier","src":"3957:2:44"},"nativeSrc":"3957:35:44","nodeType":"YulFunctionCall","src":"3957:35:44"}],"functionName":{"name":"iszero","nativeSrc":"3950:6:44","nodeType":"YulIdentifier","src":"3950:6:44"},"nativeSrc":"3950:43:44","nodeType":"YulFunctionCall","src":"3950:43:44"},"nativeSrc":"3947:63:44","nodeType":"YulIf","src":"3947:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"3894:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3930:5:44","nodeType":"YulTypedName","src":"3930:5:44","type":""}],"src":"3894:122:44"},{"body":{"nativeSrc":"4074:87:44","nodeType":"YulBlock","src":"4074:87:44","statements":[{"nativeSrc":"4084:29:44","nodeType":"YulAssignment","src":"4084:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"4106:6:44","nodeType":"YulIdentifier","src":"4106:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"4093:12:44","nodeType":"YulIdentifier","src":"4093:12:44"},"nativeSrc":"4093:20:44","nodeType":"YulFunctionCall","src":"4093:20:44"},"variableNames":[{"name":"value","nativeSrc":"4084:5:44","nodeType":"YulIdentifier","src":"4084:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4149:5:44","nodeType":"YulIdentifier","src":"4149:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4122:26:44","nodeType":"YulIdentifier","src":"4122:26:44"},"nativeSrc":"4122:33:44","nodeType":"YulFunctionCall","src":"4122:33:44"},"nativeSrc":"4122:33:44","nodeType":"YulExpressionStatement","src":"4122:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"4022:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4052:6:44","nodeType":"YulTypedName","src":"4052:6:44","type":""},{"name":"end","nativeSrc":"4060:3:44","nodeType":"YulTypedName","src":"4060:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4068:5:44","nodeType":"YulTypedName","src":"4068:5:44","type":""}],"src":"4022:139:44"},{"body":{"nativeSrc":"4250:391:44","nodeType":"YulBlock","src":"4250:391:44","statements":[{"body":{"nativeSrc":"4296:83:44","nodeType":"YulBlock","src":"4296:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4298:77:44","nodeType":"YulIdentifier","src":"4298:77:44"},"nativeSrc":"4298:79:44","nodeType":"YulFunctionCall","src":"4298:79:44"},"nativeSrc":"4298:79:44","nodeType":"YulExpressionStatement","src":"4298:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4271:7:44","nodeType":"YulIdentifier","src":"4271:7:44"},{"name":"headStart","nativeSrc":"4280:9:44","nodeType":"YulIdentifier","src":"4280:9:44"}],"functionName":{"name":"sub","nativeSrc":"4267:3:44","nodeType":"YulIdentifier","src":"4267:3:44"},"nativeSrc":"4267:23:44","nodeType":"YulFunctionCall","src":"4267:23:44"},{"kind":"number","nativeSrc":"4292:2:44","nodeType":"YulLiteral","src":"4292:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4263:3:44","nodeType":"YulIdentifier","src":"4263:3:44"},"nativeSrc":"4263:32:44","nodeType":"YulFunctionCall","src":"4263:32:44"},"nativeSrc":"4260:119:44","nodeType":"YulIf","src":"4260:119:44"},{"nativeSrc":"4389:117:44","nodeType":"YulBlock","src":"4389:117:44","statements":[{"nativeSrc":"4404:15:44","nodeType":"YulVariableDeclaration","src":"4404:15:44","value":{"kind":"number","nativeSrc":"4418:1:44","nodeType":"YulLiteral","src":"4418:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4408:6:44","nodeType":"YulTypedName","src":"4408:6:44","type":""}]},{"nativeSrc":"4433:63:44","nodeType":"YulAssignment","src":"4433:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4468:9:44","nodeType":"YulIdentifier","src":"4468:9:44"},{"name":"offset","nativeSrc":"4479:6:44","nodeType":"YulIdentifier","src":"4479:6:44"}],"functionName":{"name":"add","nativeSrc":"4464:3:44","nodeType":"YulIdentifier","src":"4464:3:44"},"nativeSrc":"4464:22:44","nodeType":"YulFunctionCall","src":"4464:22:44"},{"name":"dataEnd","nativeSrc":"4488:7:44","nodeType":"YulIdentifier","src":"4488:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4443:20:44","nodeType":"YulIdentifier","src":"4443:20:44"},"nativeSrc":"4443:53:44","nodeType":"YulFunctionCall","src":"4443:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4433:6:44","nodeType":"YulIdentifier","src":"4433:6:44"}]}]},{"nativeSrc":"4516:118:44","nodeType":"YulBlock","src":"4516:118:44","statements":[{"nativeSrc":"4531:16:44","nodeType":"YulVariableDeclaration","src":"4531:16:44","value":{"kind":"number","nativeSrc":"4545:2:44","nodeType":"YulLiteral","src":"4545:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4535:6:44","nodeType":"YulTypedName","src":"4535:6:44","type":""}]},{"nativeSrc":"4561:63:44","nodeType":"YulAssignment","src":"4561:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4596:9:44","nodeType":"YulIdentifier","src":"4596:9:44"},{"name":"offset","nativeSrc":"4607:6:44","nodeType":"YulIdentifier","src":"4607:6:44"}],"functionName":{"name":"add","nativeSrc":"4592:3:44","nodeType":"YulIdentifier","src":"4592:3:44"},"nativeSrc":"4592:22:44","nodeType":"YulFunctionCall","src":"4592:22:44"},{"name":"dataEnd","nativeSrc":"4616:7:44","nodeType":"YulIdentifier","src":"4616:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4571:20:44","nodeType":"YulIdentifier","src":"4571:20:44"},"nativeSrc":"4571:53:44","nodeType":"YulFunctionCall","src":"4571:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4561:6:44","nodeType":"YulIdentifier","src":"4561:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"4167:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4212:9:44","nodeType":"YulTypedName","src":"4212:9:44","type":""},{"name":"dataEnd","nativeSrc":"4223:7:44","nodeType":"YulTypedName","src":"4223:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4235:6:44","nodeType":"YulTypedName","src":"4235:6:44","type":""},{"name":"value1","nativeSrc":"4243:6:44","nodeType":"YulTypedName","src":"4243:6:44","type":""}],"src":"4167:474:44"},{"body":{"nativeSrc":"4712:53:44","nodeType":"YulBlock","src":"4712:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4729:3:44","nodeType":"YulIdentifier","src":"4729:3:44"},{"arguments":[{"name":"value","nativeSrc":"4752:5:44","nodeType":"YulIdentifier","src":"4752:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4734:17:44","nodeType":"YulIdentifier","src":"4734:17:44"},"nativeSrc":"4734:24:44","nodeType":"YulFunctionCall","src":"4734:24:44"}],"functionName":{"name":"mstore","nativeSrc":"4722:6:44","nodeType":"YulIdentifier","src":"4722:6:44"},"nativeSrc":"4722:37:44","nodeType":"YulFunctionCall","src":"4722:37:44"},"nativeSrc":"4722:37:44","nodeType":"YulExpressionStatement","src":"4722:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4647:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4700:5:44","nodeType":"YulTypedName","src":"4700:5:44","type":""},{"name":"pos","nativeSrc":"4707:3:44","nodeType":"YulTypedName","src":"4707:3:44","type":""}],"src":"4647:118:44"},{"body":{"nativeSrc":"4869:124:44","nodeType":"YulBlock","src":"4869:124:44","statements":[{"nativeSrc":"4879:26:44","nodeType":"YulAssignment","src":"4879:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4891:9:44","nodeType":"YulIdentifier","src":"4891:9:44"},{"kind":"number","nativeSrc":"4902:2:44","nodeType":"YulLiteral","src":"4902:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4887:3:44","nodeType":"YulIdentifier","src":"4887:3:44"},"nativeSrc":"4887:18:44","nodeType":"YulFunctionCall","src":"4887:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4879:4:44","nodeType":"YulIdentifier","src":"4879:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4959:6:44","nodeType":"YulIdentifier","src":"4959:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4972:9:44","nodeType":"YulIdentifier","src":"4972:9:44"},{"kind":"number","nativeSrc":"4983:1:44","nodeType":"YulLiteral","src":"4983:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4968:3:44","nodeType":"YulIdentifier","src":"4968:3:44"},"nativeSrc":"4968:17:44","nodeType":"YulFunctionCall","src":"4968:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4915:43:44","nodeType":"YulIdentifier","src":"4915:43:44"},"nativeSrc":"4915:71:44","nodeType":"YulFunctionCall","src":"4915:71:44"},"nativeSrc":"4915:71:44","nodeType":"YulExpressionStatement","src":"4915:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4771:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4841:9:44","nodeType":"YulTypedName","src":"4841:9:44","type":""},{"name":"value0","nativeSrc":"4853:6:44","nodeType":"YulTypedName","src":"4853:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4864:4:44","nodeType":"YulTypedName","src":"4864:4:44","type":""}],"src":"4771:222:44"},{"body":{"nativeSrc":"5064:53:44","nodeType":"YulBlock","src":"5064:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5081:3:44","nodeType":"YulIdentifier","src":"5081:3:44"},{"arguments":[{"name":"value","nativeSrc":"5104:5:44","nodeType":"YulIdentifier","src":"5104:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"5086:17:44","nodeType":"YulIdentifier","src":"5086:17:44"},"nativeSrc":"5086:24:44","nodeType":"YulFunctionCall","src":"5086:24:44"}],"functionName":{"name":"mstore","nativeSrc":"5074:6:44","nodeType":"YulIdentifier","src":"5074:6:44"},"nativeSrc":"5074:37:44","nodeType":"YulFunctionCall","src":"5074:37:44"},"nativeSrc":"5074:37:44","nodeType":"YulExpressionStatement","src":"5074:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4999:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5052:5:44","nodeType":"YulTypedName","src":"5052:5:44","type":""},{"name":"pos","nativeSrc":"5059:3:44","nodeType":"YulTypedName","src":"5059:3:44","type":""}],"src":"4999:118:44"},{"body":{"nativeSrc":"5221:124:44","nodeType":"YulBlock","src":"5221:124:44","statements":[{"nativeSrc":"5231:26:44","nodeType":"YulAssignment","src":"5231:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"5243:9:44","nodeType":"YulIdentifier","src":"5243:9:44"},{"kind":"number","nativeSrc":"5254:2:44","nodeType":"YulLiteral","src":"5254:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5239:3:44","nodeType":"YulIdentifier","src":"5239:3:44"},"nativeSrc":"5239:18:44","nodeType":"YulFunctionCall","src":"5239:18:44"},"variableNames":[{"name":"tail","nativeSrc":"5231:4:44","nodeType":"YulIdentifier","src":"5231:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5311:6:44","nodeType":"YulIdentifier","src":"5311:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5324:9:44","nodeType":"YulIdentifier","src":"5324:9:44"},{"kind":"number","nativeSrc":"5335:1:44","nodeType":"YulLiteral","src":"5335:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5320:3:44","nodeType":"YulIdentifier","src":"5320:3:44"},"nativeSrc":"5320:17:44","nodeType":"YulFunctionCall","src":"5320:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"5267:43:44","nodeType":"YulIdentifier","src":"5267:43:44"},"nativeSrc":"5267:71:44","nodeType":"YulFunctionCall","src":"5267:71:44"},"nativeSrc":"5267:71:44","nodeType":"YulExpressionStatement","src":"5267:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"5123:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5193:9:44","nodeType":"YulTypedName","src":"5193:9:44","type":""},{"name":"value0","nativeSrc":"5205:6:44","nodeType":"YulTypedName","src":"5205:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5216:4:44","nodeType":"YulTypedName","src":"5216:4:44","type":""}],"src":"5123:222:44"},{"body":{"nativeSrc":"5414:80:44","nodeType":"YulBlock","src":"5414:80:44","statements":[{"nativeSrc":"5424:22:44","nodeType":"YulAssignment","src":"5424:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"5439:6:44","nodeType":"YulIdentifier","src":"5439:6:44"}],"functionName":{"name":"mload","nativeSrc":"5433:5:44","nodeType":"YulIdentifier","src":"5433:5:44"},"nativeSrc":"5433:13:44","nodeType":"YulFunctionCall","src":"5433:13:44"},"variableNames":[{"name":"value","nativeSrc":"5424:5:44","nodeType":"YulIdentifier","src":"5424:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5482:5:44","nodeType":"YulIdentifier","src":"5482:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5455:26:44","nodeType":"YulIdentifier","src":"5455:26:44"},"nativeSrc":"5455:33:44","nodeType":"YulFunctionCall","src":"5455:33:44"},"nativeSrc":"5455:33:44","nodeType":"YulExpressionStatement","src":"5455:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"5351:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5392:6:44","nodeType":"YulTypedName","src":"5392:6:44","type":""},{"name":"end","nativeSrc":"5400:3:44","nodeType":"YulTypedName","src":"5400:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5408:5:44","nodeType":"YulTypedName","src":"5408:5:44","type":""}],"src":"5351:143:44"},{"body":{"nativeSrc":"5577:274:44","nodeType":"YulBlock","src":"5577:274:44","statements":[{"body":{"nativeSrc":"5623:83:44","nodeType":"YulBlock","src":"5623:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5625:77:44","nodeType":"YulIdentifier","src":"5625:77:44"},"nativeSrc":"5625:79:44","nodeType":"YulFunctionCall","src":"5625:79:44"},"nativeSrc":"5625:79:44","nodeType":"YulExpressionStatement","src":"5625:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5598:7:44","nodeType":"YulIdentifier","src":"5598:7:44"},{"name":"headStart","nativeSrc":"5607:9:44","nodeType":"YulIdentifier","src":"5607:9:44"}],"functionName":{"name":"sub","nativeSrc":"5594:3:44","nodeType":"YulIdentifier","src":"5594:3:44"},"nativeSrc":"5594:23:44","nodeType":"YulFunctionCall","src":"5594:23:44"},{"kind":"number","nativeSrc":"5619:2:44","nodeType":"YulLiteral","src":"5619:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5590:3:44","nodeType":"YulIdentifier","src":"5590:3:44"},"nativeSrc":"5590:32:44","nodeType":"YulFunctionCall","src":"5590:32:44"},"nativeSrc":"5587:119:44","nodeType":"YulIf","src":"5587:119:44"},{"nativeSrc":"5716:128:44","nodeType":"YulBlock","src":"5716:128:44","statements":[{"nativeSrc":"5731:15:44","nodeType":"YulVariableDeclaration","src":"5731:15:44","value":{"kind":"number","nativeSrc":"5745:1:44","nodeType":"YulLiteral","src":"5745:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5735:6:44","nodeType":"YulTypedName","src":"5735:6:44","type":""}]},{"nativeSrc":"5760:74:44","nodeType":"YulAssignment","src":"5760:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5806:9:44","nodeType":"YulIdentifier","src":"5806:9:44"},{"name":"offset","nativeSrc":"5817:6:44","nodeType":"YulIdentifier","src":"5817:6:44"}],"functionName":{"name":"add","nativeSrc":"5802:3:44","nodeType":"YulIdentifier","src":"5802:3:44"},"nativeSrc":"5802:22:44","nodeType":"YulFunctionCall","src":"5802:22:44"},{"name":"dataEnd","nativeSrc":"5826:7:44","nodeType":"YulIdentifier","src":"5826:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"5770:31:44","nodeType":"YulIdentifier","src":"5770:31:44"},"nativeSrc":"5770:64:44","nodeType":"YulFunctionCall","src":"5770:64:44"},"variableNames":[{"name":"value0","nativeSrc":"5760:6:44","nodeType":"YulIdentifier","src":"5760:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"5500:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5547:9:44","nodeType":"YulTypedName","src":"5547:9:44","type":""},{"name":"dataEnd","nativeSrc":"5558:7:44","nodeType":"YulTypedName","src":"5558:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5570:6:44","nodeType":"YulTypedName","src":"5570:6:44","type":""}],"src":"5500:351:44"},{"body":{"nativeSrc":"5983:206:44","nodeType":"YulBlock","src":"5983:206:44","statements":[{"nativeSrc":"5993:26:44","nodeType":"YulAssignment","src":"5993:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6005:9:44","nodeType":"YulIdentifier","src":"6005:9:44"},{"kind":"number","nativeSrc":"6016:2:44","nodeType":"YulLiteral","src":"6016:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6001:3:44","nodeType":"YulIdentifier","src":"6001:3:44"},"nativeSrc":"6001:18:44","nodeType":"YulFunctionCall","src":"6001:18:44"},"variableNames":[{"name":"tail","nativeSrc":"5993:4:44","nodeType":"YulIdentifier","src":"5993:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6073:6:44","nodeType":"YulIdentifier","src":"6073:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6086:9:44","nodeType":"YulIdentifier","src":"6086:9:44"},{"kind":"number","nativeSrc":"6097:1:44","nodeType":"YulLiteral","src":"6097:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6082:3:44","nodeType":"YulIdentifier","src":"6082:3:44"},"nativeSrc":"6082:17:44","nodeType":"YulFunctionCall","src":"6082:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6029:43:44","nodeType":"YulIdentifier","src":"6029:43:44"},"nativeSrc":"6029:71:44","nodeType":"YulFunctionCall","src":"6029:71:44"},"nativeSrc":"6029:71:44","nodeType":"YulExpressionStatement","src":"6029:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6154:6:44","nodeType":"YulIdentifier","src":"6154:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6167:9:44","nodeType":"YulIdentifier","src":"6167:9:44"},{"kind":"number","nativeSrc":"6178:2:44","nodeType":"YulLiteral","src":"6178:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6163:3:44","nodeType":"YulIdentifier","src":"6163:3:44"},"nativeSrc":"6163:18:44","nodeType":"YulFunctionCall","src":"6163:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"6110:43:44","nodeType":"YulIdentifier","src":"6110:43:44"},"nativeSrc":"6110:72:44","nodeType":"YulFunctionCall","src":"6110:72:44"},"nativeSrc":"6110:72:44","nodeType":"YulExpressionStatement","src":"6110:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"5857:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5947:9:44","nodeType":"YulTypedName","src":"5947:9:44","type":""},{"name":"value1","nativeSrc":"5959:6:44","nodeType":"YulTypedName","src":"5959:6:44","type":""},{"name":"value0","nativeSrc":"5967:6:44","nodeType":"YulTypedName","src":"5967:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5978:4:44","nodeType":"YulTypedName","src":"5978:4:44","type":""}],"src":"5857:332:44"},{"body":{"nativeSrc":"6273:66:44","nodeType":"YulBlock","src":"6273:66:44","statements":[{"nativeSrc":"6283:50:44","nodeType":"YulAssignment","src":"6283:50:44","value":{"arguments":[{"name":"value","nativeSrc":"6327:5:44","nodeType":"YulIdentifier","src":"6327:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"6296:30:44","nodeType":"YulIdentifier","src":"6296:30:44"},"nativeSrc":"6296:37:44","nodeType":"YulFunctionCall","src":"6296:37:44"},"variableNames":[{"name":"converted","nativeSrc":"6283:9:44","nodeType":"YulIdentifier","src":"6283:9:44"}]}]},"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"6195:144:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6253:5:44","nodeType":"YulTypedName","src":"6253:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6263:9:44","nodeType":"YulTypedName","src":"6263:9:44","type":""}],"src":"6195:144:44"},{"body":{"nativeSrc":"6428:84:44","nodeType":"YulBlock","src":"6428:84:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6445:3:44","nodeType":"YulIdentifier","src":"6445:3:44"},{"arguments":[{"name":"value","nativeSrc":"6499:5:44","nodeType":"YulIdentifier","src":"6499:5:44"}],"functionName":{"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"6450:48:44","nodeType":"YulIdentifier","src":"6450:48:44"},"nativeSrc":"6450:55:44","nodeType":"YulFunctionCall","src":"6450:55:44"}],"functionName":{"name":"mstore","nativeSrc":"6438:6:44","nodeType":"YulIdentifier","src":"6438:6:44"},"nativeSrc":"6438:68:44","nodeType":"YulFunctionCall","src":"6438:68:44"},"nativeSrc":"6438:68:44","nodeType":"YulExpressionStatement","src":"6438:68:44"}]},"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"6345:167:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6416:5:44","nodeType":"YulTypedName","src":"6416:5:44","type":""},{"name":"pos","nativeSrc":"6423:3:44","nodeType":"YulTypedName","src":"6423:3:44","type":""}],"src":"6345:167:44"},{"body":{"nativeSrc":"6690:306:44","nodeType":"YulBlock","src":"6690:306:44","statements":[{"nativeSrc":"6700:26:44","nodeType":"YulAssignment","src":"6700:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6712:9:44","nodeType":"YulIdentifier","src":"6712:9:44"},{"kind":"number","nativeSrc":"6723:2:44","nodeType":"YulLiteral","src":"6723:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6708:3:44","nodeType":"YulIdentifier","src":"6708:3:44"},"nativeSrc":"6708:18:44","nodeType":"YulFunctionCall","src":"6708:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6700:4:44","nodeType":"YulIdentifier","src":"6700:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6780:6:44","nodeType":"YulIdentifier","src":"6780:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6793:9:44","nodeType":"YulIdentifier","src":"6793:9:44"},{"kind":"number","nativeSrc":"6804:1:44","nodeType":"YulLiteral","src":"6804:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6789:3:44","nodeType":"YulIdentifier","src":"6789:3:44"},"nativeSrc":"6789:17:44","nodeType":"YulFunctionCall","src":"6789:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6736:43:44","nodeType":"YulIdentifier","src":"6736:43:44"},"nativeSrc":"6736:71:44","nodeType":"YulFunctionCall","src":"6736:71:44"},"nativeSrc":"6736:71:44","nodeType":"YulExpressionStatement","src":"6736:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6861:6:44","nodeType":"YulIdentifier","src":"6861:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6874:9:44","nodeType":"YulIdentifier","src":"6874:9:44"},{"kind":"number","nativeSrc":"6885:2:44","nodeType":"YulLiteral","src":"6885:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6870:3:44","nodeType":"YulIdentifier","src":"6870:3:44"},"nativeSrc":"6870:18:44","nodeType":"YulFunctionCall","src":"6870:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"6817:43:44","nodeType":"YulIdentifier","src":"6817:43:44"},"nativeSrc":"6817:72:44","nodeType":"YulFunctionCall","src":"6817:72:44"},"nativeSrc":"6817:72:44","nodeType":"YulExpressionStatement","src":"6817:72:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"6961:6:44","nodeType":"YulIdentifier","src":"6961:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6974:9:44","nodeType":"YulIdentifier","src":"6974:9:44"},{"kind":"number","nativeSrc":"6985:2:44","nodeType":"YulLiteral","src":"6985:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6970:3:44","nodeType":"YulIdentifier","src":"6970:3:44"},"nativeSrc":"6970:18:44","nodeType":"YulFunctionCall","src":"6970:18:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"6899:61:44","nodeType":"YulIdentifier","src":"6899:61:44"},"nativeSrc":"6899:90:44","nodeType":"YulFunctionCall","src":"6899:90:44"},"nativeSrc":"6899:90:44","nodeType":"YulExpressionStatement","src":"6899:90:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed","nativeSrc":"6518:478:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6646:9:44","nodeType":"YulTypedName","src":"6646:9:44","type":""},{"name":"value2","nativeSrc":"6658:6:44","nodeType":"YulTypedName","src":"6658:6:44","type":""},{"name":"value1","nativeSrc":"6666:6:44","nodeType":"YulTypedName","src":"6666:6:44","type":""},{"name":"value0","nativeSrc":"6674:6:44","nodeType":"YulTypedName","src":"6674:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6685:4:44","nodeType":"YulTypedName","src":"6685:4:44","type":""}],"src":"6518:478:44"},{"body":{"nativeSrc":"7060:40:44","nodeType":"YulBlock","src":"7060:40:44","statements":[{"nativeSrc":"7071:22:44","nodeType":"YulAssignment","src":"7071:22:44","value":{"arguments":[{"name":"value","nativeSrc":"7087:5:44","nodeType":"YulIdentifier","src":"7087:5:44"}],"functionName":{"name":"mload","nativeSrc":"7081:5:44","nodeType":"YulIdentifier","src":"7081:5:44"},"nativeSrc":"7081:12:44","nodeType":"YulFunctionCall","src":"7081:12:44"},"variableNames":[{"name":"length","nativeSrc":"7071:6:44","nodeType":"YulIdentifier","src":"7071:6:44"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7002:98:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7043:5:44","nodeType":"YulTypedName","src":"7043:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7053:6:44","nodeType":"YulTypedName","src":"7053:6:44","type":""}],"src":"7002:98:44"},{"body":{"nativeSrc":"7201:73:44","nodeType":"YulBlock","src":"7201:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7218:3:44","nodeType":"YulIdentifier","src":"7218:3:44"},{"name":"length","nativeSrc":"7223:6:44","nodeType":"YulIdentifier","src":"7223:6:44"}],"functionName":{"name":"mstore","nativeSrc":"7211:6:44","nodeType":"YulIdentifier","src":"7211:6:44"},"nativeSrc":"7211:19:44","nodeType":"YulFunctionCall","src":"7211:19:44"},"nativeSrc":"7211:19:44","nodeType":"YulExpressionStatement","src":"7211:19:44"},{"nativeSrc":"7239:29:44","nodeType":"YulAssignment","src":"7239:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"7258:3:44","nodeType":"YulIdentifier","src":"7258:3:44"},{"kind":"number","nativeSrc":"7263:4:44","nodeType":"YulLiteral","src":"7263:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7254:3:44","nodeType":"YulIdentifier","src":"7254:3:44"},"nativeSrc":"7254:14:44","nodeType":"YulFunctionCall","src":"7254:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"7239:11:44","nodeType":"YulIdentifier","src":"7239:11:44"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"7106:168:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7173:3:44","nodeType":"YulTypedName","src":"7173:3:44","type":""},{"name":"length","nativeSrc":"7178:6:44","nodeType":"YulTypedName","src":"7178:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7189:11:44","nodeType":"YulTypedName","src":"7189:11:44","type":""}],"src":"7106:168:44"},{"body":{"nativeSrc":"7342:186:44","nodeType":"YulBlock","src":"7342:186:44","statements":[{"nativeSrc":"7353:10:44","nodeType":"YulVariableDeclaration","src":"7353:10:44","value":{"kind":"number","nativeSrc":"7362:1:44","nodeType":"YulLiteral","src":"7362:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"7357:1:44","nodeType":"YulTypedName","src":"7357:1:44","type":""}]},{"body":{"nativeSrc":"7422:63:44","nodeType":"YulBlock","src":"7422:63:44","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7447:3:44","nodeType":"YulIdentifier","src":"7447:3:44"},{"name":"i","nativeSrc":"7452:1:44","nodeType":"YulIdentifier","src":"7452:1:44"}],"functionName":{"name":"add","nativeSrc":"7443:3:44","nodeType":"YulIdentifier","src":"7443:3:44"},"nativeSrc":"7443:11:44","nodeType":"YulFunctionCall","src":"7443:11:44"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"7466:3:44","nodeType":"YulIdentifier","src":"7466:3:44"},{"name":"i","nativeSrc":"7471:1:44","nodeType":"YulIdentifier","src":"7471:1:44"}],"functionName":{"name":"add","nativeSrc":"7462:3:44","nodeType":"YulIdentifier","src":"7462:3:44"},"nativeSrc":"7462:11:44","nodeType":"YulFunctionCall","src":"7462:11:44"}],"functionName":{"name":"mload","nativeSrc":"7456:5:44","nodeType":"YulIdentifier","src":"7456:5:44"},"nativeSrc":"7456:18:44","nodeType":"YulFunctionCall","src":"7456:18:44"}],"functionName":{"name":"mstore","nativeSrc":"7436:6:44","nodeType":"YulIdentifier","src":"7436:6:44"},"nativeSrc":"7436:39:44","nodeType":"YulFunctionCall","src":"7436:39:44"},"nativeSrc":"7436:39:44","nodeType":"YulExpressionStatement","src":"7436:39:44"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"7383:1:44","nodeType":"YulIdentifier","src":"7383:1:44"},{"name":"length","nativeSrc":"7386:6:44","nodeType":"YulIdentifier","src":"7386:6:44"}],"functionName":{"name":"lt","nativeSrc":"7380:2:44","nodeType":"YulIdentifier","src":"7380:2:44"},"nativeSrc":"7380:13:44","nodeType":"YulFunctionCall","src":"7380:13:44"},"nativeSrc":"7372:113:44","nodeType":"YulForLoop","post":{"nativeSrc":"7394:19:44","nodeType":"YulBlock","src":"7394:19:44","statements":[{"nativeSrc":"7396:15:44","nodeType":"YulAssignment","src":"7396:15:44","value":{"arguments":[{"name":"i","nativeSrc":"7405:1:44","nodeType":"YulIdentifier","src":"7405:1:44"},{"kind":"number","nativeSrc":"7408:2:44","nodeType":"YulLiteral","src":"7408:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7401:3:44","nodeType":"YulIdentifier","src":"7401:3:44"},"nativeSrc":"7401:10:44","nodeType":"YulFunctionCall","src":"7401:10:44"},"variableNames":[{"name":"i","nativeSrc":"7396:1:44","nodeType":"YulIdentifier","src":"7396:1:44"}]}]},"pre":{"nativeSrc":"7376:3:44","nodeType":"YulBlock","src":"7376:3:44","statements":[]},"src":"7372:113:44"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"7505:3:44","nodeType":"YulIdentifier","src":"7505:3:44"},{"name":"length","nativeSrc":"7510:6:44","nodeType":"YulIdentifier","src":"7510:6:44"}],"functionName":{"name":"add","nativeSrc":"7501:3:44","nodeType":"YulIdentifier","src":"7501:3:44"},"nativeSrc":"7501:16:44","nodeType":"YulFunctionCall","src":"7501:16:44"},{"kind":"number","nativeSrc":"7519:1:44","nodeType":"YulLiteral","src":"7519:1:44","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7494:6:44","nodeType":"YulIdentifier","src":"7494:6:44"},"nativeSrc":"7494:27:44","nodeType":"YulFunctionCall","src":"7494:27:44"},"nativeSrc":"7494:27:44","nodeType":"YulExpressionStatement","src":"7494:27:44"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7280:248:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"7324:3:44","nodeType":"YulTypedName","src":"7324:3:44","type":""},{"name":"dst","nativeSrc":"7329:3:44","nodeType":"YulTypedName","src":"7329:3:44","type":""},{"name":"length","nativeSrc":"7334:6:44","nodeType":"YulTypedName","src":"7334:6:44","type":""}],"src":"7280:248:44"},{"body":{"nativeSrc":"7582:54:44","nodeType":"YulBlock","src":"7582:54:44","statements":[{"nativeSrc":"7592:38:44","nodeType":"YulAssignment","src":"7592:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7610:5:44","nodeType":"YulIdentifier","src":"7610:5:44"},{"kind":"number","nativeSrc":"7617:2:44","nodeType":"YulLiteral","src":"7617:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7606:3:44","nodeType":"YulIdentifier","src":"7606:3:44"},"nativeSrc":"7606:14:44","nodeType":"YulFunctionCall","src":"7606:14:44"},{"arguments":[{"kind":"number","nativeSrc":"7626:2:44","nodeType":"YulLiteral","src":"7626:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7622:3:44","nodeType":"YulIdentifier","src":"7622:3:44"},"nativeSrc":"7622:7:44","nodeType":"YulFunctionCall","src":"7622:7:44"}],"functionName":{"name":"and","nativeSrc":"7602:3:44","nodeType":"YulIdentifier","src":"7602:3:44"},"nativeSrc":"7602:28:44","nodeType":"YulFunctionCall","src":"7602:28:44"},"variableNames":[{"name":"result","nativeSrc":"7592:6:44","nodeType":"YulIdentifier","src":"7592:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7534:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7565:5:44","nodeType":"YulTypedName","src":"7565:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7575:6:44","nodeType":"YulTypedName","src":"7575:6:44","type":""}],"src":"7534:102:44"},{"body":{"nativeSrc":"7732:283:44","nodeType":"YulBlock","src":"7732:283:44","statements":[{"nativeSrc":"7742:52:44","nodeType":"YulVariableDeclaration","src":"7742:52:44","value":{"arguments":[{"name":"value","nativeSrc":"7788:5:44","nodeType":"YulIdentifier","src":"7788:5:44"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7756:31:44","nodeType":"YulIdentifier","src":"7756:31:44"},"nativeSrc":"7756:38:44","nodeType":"YulFunctionCall","src":"7756:38:44"},"variables":[{"name":"length","nativeSrc":"7746:6:44","nodeType":"YulTypedName","src":"7746:6:44","type":""}]},{"nativeSrc":"7803:77:44","nodeType":"YulAssignment","src":"7803:77:44","value":{"arguments":[{"name":"pos","nativeSrc":"7868:3:44","nodeType":"YulIdentifier","src":"7868:3:44"},{"name":"length","nativeSrc":"7873:6:44","nodeType":"YulIdentifier","src":"7873:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"7810:57:44","nodeType":"YulIdentifier","src":"7810:57:44"},"nativeSrc":"7810:70:44","nodeType":"YulFunctionCall","src":"7810:70:44"},"variableNames":[{"name":"pos","nativeSrc":"7803:3:44","nodeType":"YulIdentifier","src":"7803:3:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7928:5:44","nodeType":"YulIdentifier","src":"7928:5:44"},{"kind":"number","nativeSrc":"7935:4:44","nodeType":"YulLiteral","src":"7935:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7924:3:44","nodeType":"YulIdentifier","src":"7924:3:44"},"nativeSrc":"7924:16:44","nodeType":"YulFunctionCall","src":"7924:16:44"},{"name":"pos","nativeSrc":"7942:3:44","nodeType":"YulIdentifier","src":"7942:3:44"},{"name":"length","nativeSrc":"7947:6:44","nodeType":"YulIdentifier","src":"7947:6:44"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7889:34:44","nodeType":"YulIdentifier","src":"7889:34:44"},"nativeSrc":"7889:65:44","nodeType":"YulFunctionCall","src":"7889:65:44"},"nativeSrc":"7889:65:44","nodeType":"YulExpressionStatement","src":"7889:65:44"},{"nativeSrc":"7963:46:44","nodeType":"YulAssignment","src":"7963:46:44","value":{"arguments":[{"name":"pos","nativeSrc":"7974:3:44","nodeType":"YulIdentifier","src":"7974:3:44"},{"arguments":[{"name":"length","nativeSrc":"8001:6:44","nodeType":"YulIdentifier","src":"8001:6:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7979:21:44","nodeType":"YulIdentifier","src":"7979:21:44"},"nativeSrc":"7979:29:44","nodeType":"YulFunctionCall","src":"7979:29:44"}],"functionName":{"name":"add","nativeSrc":"7970:3:44","nodeType":"YulIdentifier","src":"7970:3:44"},"nativeSrc":"7970:39:44","nodeType":"YulFunctionCall","src":"7970:39:44"},"variableNames":[{"name":"end","nativeSrc":"7963:3:44","nodeType":"YulIdentifier","src":"7963:3:44"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7642:373:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7713:5:44","nodeType":"YulTypedName","src":"7713:5:44","type":""},{"name":"pos","nativeSrc":"7720:3:44","nodeType":"YulTypedName","src":"7720:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7728:3:44","nodeType":"YulTypedName","src":"7728:3:44","type":""}],"src":"7642:373:44"},{"body":{"nativeSrc":"8191:355:44","nodeType":"YulBlock","src":"8191:355:44","statements":[{"nativeSrc":"8201:26:44","nodeType":"YulAssignment","src":"8201:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8213:9:44","nodeType":"YulIdentifier","src":"8213:9:44"},{"kind":"number","nativeSrc":"8224:2:44","nodeType":"YulLiteral","src":"8224:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8209:3:44","nodeType":"YulIdentifier","src":"8209:3:44"},"nativeSrc":"8209:18:44","nodeType":"YulFunctionCall","src":"8209:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8201:4:44","nodeType":"YulIdentifier","src":"8201:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8281:6:44","nodeType":"YulIdentifier","src":"8281:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8294:9:44","nodeType":"YulIdentifier","src":"8294:9:44"},{"kind":"number","nativeSrc":"8305:1:44","nodeType":"YulLiteral","src":"8305:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8290:3:44","nodeType":"YulIdentifier","src":"8290:3:44"},"nativeSrc":"8290:17:44","nodeType":"YulFunctionCall","src":"8290:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8237:43:44","nodeType":"YulIdentifier","src":"8237:43:44"},"nativeSrc":"8237:71:44","nodeType":"YulFunctionCall","src":"8237:71:44"},"nativeSrc":"8237:71:44","nodeType":"YulExpressionStatement","src":"8237:71:44"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8329:9:44","nodeType":"YulIdentifier","src":"8329:9:44"},{"kind":"number","nativeSrc":"8340:2:44","nodeType":"YulLiteral","src":"8340:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8325:3:44","nodeType":"YulIdentifier","src":"8325:3:44"},"nativeSrc":"8325:18:44","nodeType":"YulFunctionCall","src":"8325:18:44"},{"arguments":[{"name":"tail","nativeSrc":"8349:4:44","nodeType":"YulIdentifier","src":"8349:4:44"},{"name":"headStart","nativeSrc":"8355:9:44","nodeType":"YulIdentifier","src":"8355:9:44"}],"functionName":{"name":"sub","nativeSrc":"8345:3:44","nodeType":"YulIdentifier","src":"8345:3:44"},"nativeSrc":"8345:20:44","nodeType":"YulFunctionCall","src":"8345:20:44"}],"functionName":{"name":"mstore","nativeSrc":"8318:6:44","nodeType":"YulIdentifier","src":"8318:6:44"},"nativeSrc":"8318:48:44","nodeType":"YulFunctionCall","src":"8318:48:44"},"nativeSrc":"8318:48:44","nodeType":"YulExpressionStatement","src":"8318:48:44"},{"nativeSrc":"8375:84:44","nodeType":"YulAssignment","src":"8375:84:44","value":{"arguments":[{"name":"value1","nativeSrc":"8445:6:44","nodeType":"YulIdentifier","src":"8445:6:44"},{"name":"tail","nativeSrc":"8454:4:44","nodeType":"YulIdentifier","src":"8454:4:44"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"8383:61:44","nodeType":"YulIdentifier","src":"8383:61:44"},"nativeSrc":"8383:76:44","nodeType":"YulFunctionCall","src":"8383:76:44"},"variableNames":[{"name":"tail","nativeSrc":"8375:4:44","nodeType":"YulIdentifier","src":"8375:4:44"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"8511:6:44","nodeType":"YulIdentifier","src":"8511:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8524:9:44","nodeType":"YulIdentifier","src":"8524:9:44"},{"kind":"number","nativeSrc":"8535:2:44","nodeType":"YulLiteral","src":"8535:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8520:3:44","nodeType":"YulIdentifier","src":"8520:3:44"},"nativeSrc":"8520:18:44","nodeType":"YulFunctionCall","src":"8520:18:44"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nativeSrc":"8469:41:44","nodeType":"YulIdentifier","src":"8469:41:44"},"nativeSrc":"8469:70:44","nodeType":"YulFunctionCall","src":"8469:70:44"},"nativeSrc":"8469:70:44","nodeType":"YulExpressionStatement","src":"8469:70:44"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__fromStack_reversed","nativeSrc":"8021:525:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8147:9:44","nodeType":"YulTypedName","src":"8147:9:44","type":""},{"name":"value2","nativeSrc":"8159:6:44","nodeType":"YulTypedName","src":"8159:6:44","type":""},{"name":"value1","nativeSrc":"8167:6:44","nodeType":"YulTypedName","src":"8167:6:44","type":""},{"name":"value0","nativeSrc":"8175:6:44","nodeType":"YulTypedName","src":"8175:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8186:4:44","nodeType":"YulTypedName","src":"8186:4:44","type":""}],"src":"8021:525:44"}]},"contents":"{\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_contract$_IVerifier_$8474(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IVerifier_$8474(value) {\n        if iszero(eq(value, cleanup_t_contract$_IVerifier_$8474(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IVerifier_$8474(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IVerifier_$8474(value)\n    }\n\n    function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_contract$_IVerifier_$8474(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function convert_t_contract$_ENS_$136_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ENS_$136_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ENS_$136_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ENS_$136__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ENS_$136_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_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function convert_t_contract$_IVerifier_$8474_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IVerifier_$8474_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value2,  add(headStart, 64))\n\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 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_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_bytes_memory_ptr_t_uint32__to_t_address_t_bytes_memory_ptr_t_uint32__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        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7440":[{"length":32,"start":410},{"length":32,"start":540}],"7640":[{"length":32,"start":338},{"length":32,"start":788},{"length":32,"start":1060}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c80637d73b2311161005b5780637d73b231146100da578063a8c00861146100f8578063c03799db14610114578063d9e63a89146101325761007d565b8063095f025e146100825780634c7464cf146100a057806377a50701146100bc575b600080fd5b61008a610150565b60405161009791906105ae565b60405180910390f35b6100ba60048036038101906100b59190610654565b610174565b005b6100c4610191565b6040516100d191906106b3565b60405180910390f35b6100e2610198565b6040516100ef91906106ef565b60405180910390f35b610112600480360381019061010d9190610736565b6101bc565b005b61011c6101d8565b6040516101299190610785565b60405180910390f35b61013a6101fc565b60405161014791906106b3565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b33826101808282610203565b61018b338585610312565b50505050565b62030d4081565b7f000000000000000000000000000000000000000000000000000000000000000081565b81816101c88282610203565b6101d28484610422565b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b620493e081565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff1660e01b815260040161027391906107af565b602060405180830381865afa158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b491906107df565b73ffffffffffffffffffffffffffffffffffffffff161461030e5781816040517f36b8521000000000000000000000000000000000000000000000000000000000815260040161030592919061080c565b60405180910390fd5b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633dbb202b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685858560405160240161038493929190610856565b60405160208183030381529060405263dd738e6c60e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050620493e06040518463ffffffff1660e01b81526004016103eb9392919061091d565b600060405180830381600087803b15801561040557600080fd5b505af1158015610419573d6000803e3d6000fd5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633dbb202b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848460405160240161049292919061080c565b60405160208183030381529060405263a8c0086160e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505062030d406040518463ffffffff1660e01b81526004016104f99392919061091d565b600060405180830381600087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061057461056f61056a8461052f565b61054f565b61052f565b9050919050565b600061058682610559565b9050919050565b60006105988261057b565b9050919050565b6105a88161058d565b82525050565b60006020820190506105c3600083018461059f565b92915050565b600080fd5b6000819050919050565b6105e1816105ce565b81146105ec57600080fd5b50565b6000813590506105fe816105d8565b92915050565b600061060f8261052f565b9050919050565b600061062182610604565b9050919050565b61063181610616565b811461063c57600080fd5b50565b60008135905061064e81610628565b92915050565b6000806040838503121561066b5761066a6105c9565b5b6000610679858286016105ef565b925050602061068a8582860161063f565b9150509250929050565b600063ffffffff82169050919050565b6106ad81610694565b82525050565b60006020820190506106c860008301846106a4565b92915050565b60006106d98261057b565b9050919050565b6106e9816106ce565b82525050565b600060208201905061070460008301846106e0565b92915050565b61071381610604565b811461071e57600080fd5b50565b6000813590506107308161070a565b92915050565b6000806040838503121561074d5761074c6105c9565b5b600061075b85828601610721565b925050602061076c858286016105ef565b9150509250929050565b61077f81610604565b82525050565b600060208201905061079a6000830184610776565b92915050565b6107a9816105ce565b82525050565b60006020820190506107c460008301846107a0565b92915050565b6000815190506107d98161070a565b92915050565b6000602082840312156107f5576107f46105c9565b5b6000610803848285016107ca565b91505092915050565b60006040820190506108216000830185610776565b61082e60208301846107a0565b9392505050565b60006108408261057b565b9050919050565b61085081610835565b82525050565b600060608201905061086b6000830186610776565b61087860208301856107a0565b6108856040830184610847565b949350505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156108c75780820151818401526020810190506108ac565b60008484015250505050565b6000601f19601f8301169050919050565b60006108ef8261088d565b6108f98185610898565b93506109098185602086016108a9565b610912816108d3565b840191505092915050565b60006060820190506109326000830186610776565b818103602083015261094481856108e4565b905061095360408301846106a4565b94935050505056fea2646970667358221220ccb7ae8c76686b1ef08eec45cda40eefd39ad881e80a81dc9c5881e1998a769764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7D73B231 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7D73B231 EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0xF8 JUMPI DUP1 PUSH4 0xC03799DB EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0xD9E63A89 EQ PUSH2 0x132 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x95F025E EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x4C7464CF EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x77A50701 EQ PUSH2 0xBC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A PUSH2 0x150 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x654 JUMP JUMPDEST PUSH2 0x174 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC4 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP2 SWAP1 PUSH2 0x6B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x198 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0x736 JUMP JUMPDEST PUSH2 0x1BC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x1D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0x785 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13A PUSH2 0x1FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x147 SWAP2 SWAP1 PUSH2 0x6B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST CALLER DUP3 PUSH2 0x180 DUP3 DUP3 PUSH2 0x203 JUMP JUMPDEST PUSH2 0x18B CALLER DUP6 DUP6 PUSH2 0x312 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH3 0x30D40 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST DUP2 DUP2 PUSH2 0x1C8 DUP3 DUP3 PUSH2 0x203 JUMP JUMPDEST PUSH2 0x1D2 DUP5 DUP5 PUSH2 0x422 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH3 0x493E0 DUP2 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2571BE3 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0x7AF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x290 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x7DF JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x30E JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x36B8521000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x305 SWAP3 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3DBB202B PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x384 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0xDD738E6C PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH3 0x493E0 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3EB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3DBB202B PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x492 SWAP3 SWAP2 SWAP1 PUSH2 0x80C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0xA8C00861 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH3 0x30D40 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4F9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x574 PUSH2 0x56F PUSH2 0x56A DUP5 PUSH2 0x52F JUMP JUMPDEST PUSH2 0x54F JUMP JUMPDEST PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x586 DUP3 PUSH2 0x559 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x598 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5A8 DUP2 PUSH2 0x58D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5C3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x59F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5E1 DUP2 PUSH2 0x5CE JUMP JUMPDEST DUP2 EQ PUSH2 0x5EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x5FE DUP2 PUSH2 0x5D8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x60F DUP3 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x621 DUP3 PUSH2 0x604 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x631 DUP2 PUSH2 0x616 JUMP JUMPDEST DUP2 EQ PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x64E DUP2 PUSH2 0x628 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x66B JUMPI PUSH2 0x66A PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x679 DUP6 DUP3 DUP7 ADD PUSH2 0x5EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x68A DUP6 DUP3 DUP7 ADD PUSH2 0x63F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6AD DUP2 PUSH2 0x694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6C8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6D9 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6E9 DUP2 PUSH2 0x6CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x704 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x6E0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x713 DUP2 PUSH2 0x604 JUMP JUMPDEST DUP2 EQ PUSH2 0x71E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x730 DUP2 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x74D JUMPI PUSH2 0x74C PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x75B DUP6 DUP3 DUP7 ADD PUSH2 0x721 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x76C DUP6 DUP3 DUP7 ADD PUSH2 0x5EF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x77F DUP2 PUSH2 0x604 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x79A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x776 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7A9 DUP2 PUSH2 0x5CE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x7C4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x7A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D9 DUP2 PUSH2 0x70A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F5 JUMPI PUSH2 0x7F4 PUSH2 0x5C9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x803 DUP5 DUP3 DUP6 ADD PUSH2 0x7CA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x821 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x776 JUMP JUMPDEST PUSH2 0x82E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7A0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x840 DUP3 PUSH2 0x57B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x850 DUP2 PUSH2 0x835 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x86B PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x776 JUMP JUMPDEST PUSH2 0x878 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7A0 JUMP JUMPDEST PUSH2 0x885 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x847 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8C7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8AC 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 0x8EF DUP3 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x8F9 DUP2 DUP6 PUSH2 0x898 JUMP JUMPDEST SWAP4 POP PUSH2 0x909 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8A9 JUMP JUMPDEST PUSH2 0x912 DUP2 PUSH2 0x8D3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x932 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x776 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x944 DUP2 DUP6 PUSH2 0x8E4 JUMP JUMPDEST SWAP1 POP PUSH2 0x953 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x6A4 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCC 0xB7 0xAE DUP13 PUSH23 0x686B1EF08EEC45CDA40EEFD39AD881E80A81DC9C5881E1 SWAP10 DUP11 PUSH23 0x9764736F6C634300081C00330000000000000000000000 ","sourceMap":"615:2844:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;713:59:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2678:232:35;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;953:57:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;672:32:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2173:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;851:30:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1016:71;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;713:59;;;:::o;2678:232:35:-;2798:10;2810;1249:35;1264:7;1273:10;1249:14;:35::i;:::-;2832:71:::1;2870:10;2882;2894:8;2832:37;:71::i;:::-;2678:232:::0;;;;:::o;953:57:37:-;1004:6;953:57;:::o;672:32:35:-;;;:::o;2173:183::-;2276:5;2283:10;1249:35;1264:7;1273:10;1249:14;:35::i;:::-;2305:44:::1;2331:5;2338:10;2305:25;:44::i;:::-;2173:183:::0;;;;:::o;851:30:37:-;;;;;;;;;;;;:::o;1016:71::-;1081:6;1016:71;:::o;3248:209:35:-;3369:7;3336:40;;:11;:17;;;3354:10;3336:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;;3332:119;;3420:7;3429:10;3399:41;;;;;;;;;;;;:::i;:::-;;;;;;;;3332:119;3248:209;;:::o;2440:382:37:-;2591:20;:32;;;2637:15;;;;;;;;;;2723:5;2730:10;2742:8;2666:86;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1081:6;2591:224;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:382;;;:::o;1834:284::-;1923:20;:32;;;1969:15;;;;;;;;;;2043:5;2050:10;1998:64;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1004:6;1923:188;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1834:284;;:::o;7:126:44:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:60::-;167:3;188:5;181:12;;139:60;;;:::o;205:142::-;255:9;288:53;306:34;315:24;333:5;315:24;:::i;:::-;306:34;:::i;:::-;288:53;:::i;:::-;275:66;;205:142;;;:::o;353:126::-;403:9;436:37;467:5;436:37;:::i;:::-;423:50;;353:126;;;:::o;485:156::-;565:9;598:37;629:5;598:37;:::i;:::-;585:50;;485:156;;;:::o;647:191::-;764:67;825:5;764:67;:::i;:::-;759:3;752:80;647:191;;:::o;844:282::-;967:4;1005:2;994:9;990:18;982:26;;1018:101;1116:1;1105:9;1101:17;1092:6;1018:101;:::i;:::-;844:282;;;;:::o;1213:117::-;1322:1;1319;1312:12;1459:77;1496:7;1525:5;1514:16;;1459:77;;;:::o;1542:122::-;1615:24;1633:5;1615:24;:::i;:::-;1608:5;1605:35;1595:63;;1654:1;1651;1644:12;1595:63;1542:122;:::o;1670:139::-;1716:5;1754:6;1741:20;1732:29;;1770:33;1797:5;1770:33;:::i;:::-;1670:139;;;;:::o;1815:96::-;1852:7;1881:24;1899:5;1881:24;:::i;:::-;1870:35;;1815:96;;;:::o;1917:114::-;1972:7;2001:24;2019:5;2001:24;:::i;:::-;1990:35;;1917:114;;;:::o;2037:158::-;2128:42;2164:5;2128:42;:::i;:::-;2121:5;2118:53;2108:81;;2185:1;2182;2175:12;2108:81;2037:158;:::o;2201:175::-;2265:5;2303:6;2290:20;2281:29;;2319:51;2364:5;2319:51;:::i;:::-;2201:175;;;;:::o;2382:510::-;2468:6;2476;2525:2;2513:9;2504:7;2500:23;2496:32;2493:119;;;2531:79;;:::i;:::-;2493:119;2651:1;2676:53;2721:7;2712:6;2701:9;2697:22;2676:53;:::i;:::-;2666:63;;2622:117;2778:2;2804:71;2867:7;2858:6;2847:9;2843:22;2804:71;:::i;:::-;2794:81;;2749:136;2382:510;;;;;:::o;2898:93::-;2934:7;2974:10;2967:5;2963:22;2952:33;;2898:93;;;:::o;2997:115::-;3082:23;3099:5;3082:23;:::i;:::-;3077:3;3070:36;2997:115;;:::o;3118:218::-;3209:4;3247:2;3236:9;3232:18;3224:26;;3260:69;3326:1;3315:9;3311:17;3302:6;3260:69;:::i;:::-;3118:218;;;;:::o;3342:137::-;3403:9;3436:37;3467:5;3436:37;:::i;:::-;3423:50;;3342:137;;;:::o;3485:153::-;3583:48;3625:5;3583:48;:::i;:::-;3578:3;3571:61;3485:153;;:::o;3644:244::-;3748:4;3786:2;3775:9;3771:18;3763:26;;3799:82;3878:1;3867:9;3863:17;3854:6;3799:82;:::i;:::-;3644:244;;;;:::o;3894:122::-;3967:24;3985:5;3967:24;:::i;:::-;3960:5;3957:35;3947:63;;4006:1;4003;3996:12;3947:63;3894:122;:::o;4022:139::-;4068:5;4106:6;4093:20;4084:29;;4122:33;4149:5;4122:33;:::i;:::-;4022:139;;;;:::o;4167:474::-;4235:6;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4167:474;;;;;:::o;4647:118::-;4734:24;4752:5;4734:24;:::i;:::-;4729:3;4722:37;4647:118;;:::o;4771:222::-;4864:4;4902:2;4891:9;4887:18;4879:26;;4915:71;4983:1;4972:9;4968:17;4959:6;4915:71;:::i;:::-;4771:222;;;;:::o;4999:118::-;5086:24;5104:5;5086:24;:::i;:::-;5081:3;5074:37;4999:118;;:::o;5123:222::-;5216:4;5254:2;5243:9;5239:18;5231:26;;5267:71;5335:1;5324:9;5320:17;5311:6;5267:71;:::i;:::-;5123:222;;;;:::o;5351:143::-;5408:5;5439:6;5433:13;5424:22;;5455:33;5482:5;5455:33;:::i;:::-;5351:143;;;;:::o;5500:351::-;5570:6;5619:2;5607:9;5598:7;5594:23;5590:32;5587:119;;;5625:79;;:::i;:::-;5587:119;5745:1;5770:64;5826:7;5817:6;5806:9;5802:22;5770:64;:::i;:::-;5760:74;;5716:128;5500:351;;;;:::o;5857:332::-;5978:4;6016:2;6005:9;6001:18;5993:26;;6029:71;6097:1;6086:9;6082:17;6073:6;6029:71;:::i;:::-;6110:72;6178:2;6167:9;6163:18;6154:6;6110:72;:::i;:::-;5857:332;;;;;:::o;6195:144::-;6263:9;6296:37;6327:5;6296:37;:::i;:::-;6283:50;;6195:144;;;:::o;6345:167::-;6450:55;6499:5;6450:55;:::i;:::-;6445:3;6438:68;6345:167;;:::o;6518:478::-;6685:4;6723:2;6712:9;6708:18;6700:26;;6736:71;6804:1;6793:9;6789:17;6780:6;6736:71;:::i;:::-;6817:72;6885:2;6874:9;6870:18;6861:6;6817:72;:::i;:::-;6899:90;6985:2;6974:9;6970:18;6961:6;6899:90;:::i;:::-;6518:478;;;;;;:::o;7002:98::-;7053:6;7087:5;7081:12;7071:22;;7002:98;;;:::o;7106:168::-;7189:11;7223:6;7218:3;7211:19;7263:4;7258:3;7254:14;7239:29;;7106:168;;;;:::o;7280:248::-;7362:1;7372:113;7386:6;7383:1;7380:13;7372:113;;;7471:1;7466:3;7462:11;7456:18;7452:1;7447:3;7443:11;7436:39;7408:2;7405:1;7401:10;7396:15;;7372:113;;;7519:1;7510:6;7505:3;7501:16;7494:27;7342:186;7280:248;;;:::o;7534:102::-;7575:6;7626:2;7622:7;7617:2;7610:5;7606:14;7602:28;7592:38;;7534:102;;;:::o;7642:373::-;7728:3;7756:38;7788:5;7756:38;:::i;:::-;7810:70;7873:6;7868:3;7810:70;:::i;:::-;7803:77;;7889:65;7947:6;7942:3;7935:4;7928:5;7924:16;7889:65;:::i;:::-;7979:29;8001:6;7979:29;:::i;:::-;7974:3;7970:39;7963:46;;7732:283;7642:373;;;;:::o;8021:525::-;8186:4;8224:2;8213:9;8209:18;8201:26;;8237:71;8305:1;8294:9;8290:17;8281:6;8237:71;:::i;:::-;8355:9;8349:4;8345:20;8340:2;8329:9;8325:18;8318:48;8383:76;8454:4;8445:6;8383:76;:::i;:::-;8375:84;;8469:70;8535:2;8524:9;8520:18;8511:6;8469:70;:::i;:::-;8021:525;;;;;;:::o"},"methodIdentifiers":{"REGISTER_DOMAIN_GAS_LIMIT()":"77a50701","REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT()":"d9e63a89","crossDomainMessanger()":"095f025e","ensRegistry()":"7d73b231","registerDomain(address,bytes32)":"a8c00861","registerDomainWithVerifier(bytes32,address)":"4c7464cf","targetRegistrar()":"c03799db"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ensRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sciRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_crossChainDomainMessagnger\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotEnsOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessanger\",\"outputs\":[{\"internalType\":\"contract ICrossDomainMessanger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ensRegistry\",\"outputs\":[{\"internalType\":\"contract ENS\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetRegistrar\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract allows owners of an ENS (Ethereum Name Service) domain to register it in the SCI Registry contract. The contract ensures that only the legitimate ENS owner can register a domain by verifying the domain ownership through the ENS contract.\",\"errors\":{\"AccountIsNotEnsOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the ENS `domainhash`.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract with references to the ENS and the SCI Registry.\",\"params\":{\"_crossChainDomainMessagnger\":\"Address of the cross-chain domain messenger contract.\",\"_ensRegistry\":\"Address of the ENS Registry contract.\",\"_sciRegistry\":\"Address of the SCI Registry contract.\"}},\"registerDomain(address,bytes32)\":{\"details\":\"Registers a domain in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered. Requirements: - The owner must be the ENS owner of the domainHash.\",\"owner\":\"Address of the domain owner.\"}},\"registerDomainWithVerifier(bytes32,address)\":{\"details\":\"Registers a domain with a verifier in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered.\",\"verifier\":\"Address of the verifier contract. Requirements: - The caller must be the ENS owner of the domainHash.\"}}},\"title\":\"EnsRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/EnsRegistrar.sol\":\"EnsRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x8e208b44d5dbf22552fe72d79b45c640855b84fbc9ee21f4c3bb4bfe81cbe8db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcf03e1a9386d80ff6b8e31870063424454f69d2626c0efb2c8cf55e69151489\",\"dweb:/ipfs/QmVYgfMSc1ve5JWePqiAGSXEfD76emw3oLsCM1krstmJq5\"]},\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]},\"contracts/Registrars/EnsRegistrar.sol\":{\"keccak256\":\"0x8bc2626dfa3bdf4d62ddfe954e8ee7600720e94ad5c5c28c1f06fe29c15b02d2\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b49493deb4e4e9a3e12ab4c66bee6d7a3757230fed22675aeafb33b317658c23\",\"dweb:/ipfs/QmRJSwK4K91zjEiXXThLjhg7CKQWfmyKzJncy1gBagkCdG\"]},\"contracts/Registrars/SuperChainSourceRegistrar.sol\":{\"keccak256\":\"0x663983d0d252bcfd77c03abde389fa51241b8c02ea123e149469b244a828f6f9\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://8b86bc269483a9d5f60cd96bb8f473ead6416e83acbc21080a41119a00e0993d\",\"dweb:/ipfs/QmeRgX7cS2685Zri8Yj23jpnFiiUJLFrMyPj6iL65ph24R\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":7642,"contract":"contracts/Registrars/EnsRegistrar.sol:EnsRegistrar","label":"targetRegistrar","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"contracts/Registrars/SciRegistrar.sol":{"SciRegistrar":{"abi":[{"inputs":[{"internalType":"address","name":"_sciRegistry","type":"address"},{"internalType":"uint48","name":"initialDelay","type":"uint48"},{"internalType":"address","name":"_initialDefaultAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTER_DOMAIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"registerDomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"registerDomainWithVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1784":{"entryPoint":null,"id":1784,"parameterSlots":2,"returnSlots":0},"@_7585":{"entryPoint":null,"id":7585,"parameterSlots":3,"returnSlots":0},"@_grantRole_1449":{"entryPoint":544,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":285,"id":1970,"parameterSlots":2,"returnSlots":1},"@_msgSender_3399":{"entryPoint":903,"id":3399,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":502,"id":2035,"parameterSlots":0,"returnSlots":1},"@hasRole_1273":{"entryPoint":797,"id":1273,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":989,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48_fromMemory":{"entryPoint":1051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint48t_address_fromMemory":{"entryPoint":1072,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1155,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1170,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":948,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":916,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":1010,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":911,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":966,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":1028,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2237:44","nodeType":"YulBlock","src":"0:2237:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"889:53:44","nodeType":"YulBlock","src":"889:53:44","statements":[{"nativeSrc":"899:37:44","nodeType":"YulAssignment","src":"899:37:44","value":{"arguments":[{"name":"value","nativeSrc":"914:5:44","nodeType":"YulIdentifier","src":"914:5:44"},{"kind":"number","nativeSrc":"921:14:44","nodeType":"YulLiteral","src":"921:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"910:3:44","nodeType":"YulIdentifier","src":"910:3:44"},"nativeSrc":"910:26:44","nodeType":"YulFunctionCall","src":"910:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"899:7:44","nodeType":"YulIdentifier","src":"899:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"845:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"871:5:44","nodeType":"YulTypedName","src":"871:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"881:7:44","nodeType":"YulTypedName","src":"881:7:44","type":""}],"src":"845:97:44"},{"body":{"nativeSrc":"990:78:44","nodeType":"YulBlock","src":"990:78:44","statements":[{"body":{"nativeSrc":"1046:16:44","nodeType":"YulBlock","src":"1046:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1055:1:44","nodeType":"YulLiteral","src":"1055:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1058:1:44","nodeType":"YulLiteral","src":"1058:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1048:6:44","nodeType":"YulIdentifier","src":"1048:6:44"},"nativeSrc":"1048:12:44","nodeType":"YulFunctionCall","src":"1048:12:44"},"nativeSrc":"1048:12:44","nodeType":"YulExpressionStatement","src":"1048:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1013:5:44","nodeType":"YulIdentifier","src":"1013:5:44"},{"arguments":[{"name":"value","nativeSrc":"1037:5:44","nodeType":"YulIdentifier","src":"1037:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1020:16:44","nodeType":"YulIdentifier","src":"1020:16:44"},"nativeSrc":"1020:23:44","nodeType":"YulFunctionCall","src":"1020:23:44"}],"functionName":{"name":"eq","nativeSrc":"1010:2:44","nodeType":"YulIdentifier","src":"1010:2:44"},"nativeSrc":"1010:34:44","nodeType":"YulFunctionCall","src":"1010:34:44"}],"functionName":{"name":"iszero","nativeSrc":"1003:6:44","nodeType":"YulIdentifier","src":"1003:6:44"},"nativeSrc":"1003:42:44","nodeType":"YulFunctionCall","src":"1003:42:44"},"nativeSrc":"1000:62:44","nodeType":"YulIf","src":"1000:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"948:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"983:5:44","nodeType":"YulTypedName","src":"983:5:44","type":""}],"src":"948:120:44"},{"body":{"nativeSrc":"1136:79:44","nodeType":"YulBlock","src":"1136:79:44","statements":[{"nativeSrc":"1146:22:44","nodeType":"YulAssignment","src":"1146:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"}],"functionName":{"name":"mload","nativeSrc":"1155:5:44","nodeType":"YulIdentifier","src":"1155:5:44"},"nativeSrc":"1155:13:44","nodeType":"YulFunctionCall","src":"1155:13:44"},"variableNames":[{"name":"value","nativeSrc":"1146:5:44","nodeType":"YulIdentifier","src":"1146:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1203:5:44","nodeType":"YulIdentifier","src":"1203:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"1177:25:44","nodeType":"YulIdentifier","src":"1177:25:44"},"nativeSrc":"1177:32:44","nodeType":"YulFunctionCall","src":"1177:32:44"},"nativeSrc":"1177:32:44","nodeType":"YulExpressionStatement","src":"1177:32:44"}]},"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1074:141:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1114:6:44","nodeType":"YulTypedName","src":"1114:6:44","type":""},{"name":"end","nativeSrc":"1122:3:44","nodeType":"YulTypedName","src":"1122:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1130:5:44","nodeType":"YulTypedName","src":"1130:5:44","type":""}],"src":"1074:141:44"},{"body":{"nativeSrc":"1331:551:44","nodeType":"YulBlock","src":"1331:551:44","statements":[{"body":{"nativeSrc":"1377:83:44","nodeType":"YulBlock","src":"1377:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1379:77:44","nodeType":"YulIdentifier","src":"1379:77:44"},"nativeSrc":"1379:79:44","nodeType":"YulFunctionCall","src":"1379:79:44"},"nativeSrc":"1379:79:44","nodeType":"YulExpressionStatement","src":"1379:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1352:7:44","nodeType":"YulIdentifier","src":"1352:7:44"},{"name":"headStart","nativeSrc":"1361:9:44","nodeType":"YulIdentifier","src":"1361:9:44"}],"functionName":{"name":"sub","nativeSrc":"1348:3:44","nodeType":"YulIdentifier","src":"1348:3:44"},"nativeSrc":"1348:23:44","nodeType":"YulFunctionCall","src":"1348:23:44"},{"kind":"number","nativeSrc":"1373:2:44","nodeType":"YulLiteral","src":"1373:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1344:3:44","nodeType":"YulIdentifier","src":"1344:3:44"},"nativeSrc":"1344:32:44","nodeType":"YulFunctionCall","src":"1344:32:44"},"nativeSrc":"1341:119:44","nodeType":"YulIf","src":"1341:119:44"},{"nativeSrc":"1470:128:44","nodeType":"YulBlock","src":"1470:128:44","statements":[{"nativeSrc":"1485:15:44","nodeType":"YulVariableDeclaration","src":"1485:15:44","value":{"kind":"number","nativeSrc":"1499:1:44","nodeType":"YulLiteral","src":"1499:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1489:6:44","nodeType":"YulTypedName","src":"1489:6:44","type":""}]},{"nativeSrc":"1514:74:44","nodeType":"YulAssignment","src":"1514:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1560:9:44","nodeType":"YulIdentifier","src":"1560:9:44"},{"name":"offset","nativeSrc":"1571:6:44","nodeType":"YulIdentifier","src":"1571:6:44"}],"functionName":{"name":"add","nativeSrc":"1556:3:44","nodeType":"YulIdentifier","src":"1556:3:44"},"nativeSrc":"1556:22:44","nodeType":"YulFunctionCall","src":"1556:22:44"},{"name":"dataEnd","nativeSrc":"1580:7:44","nodeType":"YulIdentifier","src":"1580:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1524:31:44","nodeType":"YulIdentifier","src":"1524:31:44"},"nativeSrc":"1524:64:44","nodeType":"YulFunctionCall","src":"1524:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1514:6:44","nodeType":"YulIdentifier","src":"1514:6:44"}]}]},{"nativeSrc":"1608:128:44","nodeType":"YulBlock","src":"1608:128:44","statements":[{"nativeSrc":"1623:16:44","nodeType":"YulVariableDeclaration","src":"1623:16:44","value":{"kind":"number","nativeSrc":"1637:2:44","nodeType":"YulLiteral","src":"1637:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1627:6:44","nodeType":"YulTypedName","src":"1627:6:44","type":""}]},{"nativeSrc":"1653:73:44","nodeType":"YulAssignment","src":"1653:73:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1698:9:44","nodeType":"YulIdentifier","src":"1698:9:44"},{"name":"offset","nativeSrc":"1709:6:44","nodeType":"YulIdentifier","src":"1709:6:44"}],"functionName":{"name":"add","nativeSrc":"1694:3:44","nodeType":"YulIdentifier","src":"1694:3:44"},"nativeSrc":"1694:22:44","nodeType":"YulFunctionCall","src":"1694:22:44"},{"name":"dataEnd","nativeSrc":"1718:7:44","nodeType":"YulIdentifier","src":"1718:7:44"}],"functionName":{"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1663:30:44","nodeType":"YulIdentifier","src":"1663:30:44"},"nativeSrc":"1663:63:44","nodeType":"YulFunctionCall","src":"1663:63:44"},"variableNames":[{"name":"value1","nativeSrc":"1653:6:44","nodeType":"YulIdentifier","src":"1653:6:44"}]}]},{"nativeSrc":"1746:129:44","nodeType":"YulBlock","src":"1746:129:44","statements":[{"nativeSrc":"1761:16:44","nodeType":"YulVariableDeclaration","src":"1761:16:44","value":{"kind":"number","nativeSrc":"1775:2:44","nodeType":"YulLiteral","src":"1775:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1765:6:44","nodeType":"YulTypedName","src":"1765:6:44","type":""}]},{"nativeSrc":"1791:74:44","nodeType":"YulAssignment","src":"1791:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1837:9:44","nodeType":"YulIdentifier","src":"1837:9:44"},{"name":"offset","nativeSrc":"1848:6:44","nodeType":"YulIdentifier","src":"1848:6:44"}],"functionName":{"name":"add","nativeSrc":"1833:3:44","nodeType":"YulIdentifier","src":"1833:3:44"},"nativeSrc":"1833:22:44","nodeType":"YulFunctionCall","src":"1833:22:44"},{"name":"dataEnd","nativeSrc":"1857:7:44","nodeType":"YulIdentifier","src":"1857:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1801:31:44","nodeType":"YulIdentifier","src":"1801:31:44"},"nativeSrc":"1801:64:44","nodeType":"YulFunctionCall","src":"1801:64:44"},"variableNames":[{"name":"value2","nativeSrc":"1791:6:44","nodeType":"YulIdentifier","src":"1791:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint48t_address_fromMemory","nativeSrc":"1221:661:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1285:9:44","nodeType":"YulTypedName","src":"1285:9:44","type":""},{"name":"dataEnd","nativeSrc":"1296:7:44","nodeType":"YulTypedName","src":"1296:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1308:6:44","nodeType":"YulTypedName","src":"1308:6:44","type":""},{"name":"value1","nativeSrc":"1316:6:44","nodeType":"YulTypedName","src":"1316:6:44","type":""},{"name":"value2","nativeSrc":"1324:6:44","nodeType":"YulTypedName","src":"1324:6:44","type":""}],"src":"1221:661:44"},{"body":{"nativeSrc":"1953:53:44","nodeType":"YulBlock","src":"1953:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1970:3:44","nodeType":"YulIdentifier","src":"1970:3:44"},{"arguments":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulIdentifier","src":"1993:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1975:17:44","nodeType":"YulIdentifier","src":"1975:17:44"},"nativeSrc":"1975:24:44","nodeType":"YulFunctionCall","src":"1975:24:44"}],"functionName":{"name":"mstore","nativeSrc":"1963:6:44","nodeType":"YulIdentifier","src":"1963:6:44"},"nativeSrc":"1963:37:44","nodeType":"YulFunctionCall","src":"1963:37:44"},"nativeSrc":"1963:37:44","nodeType":"YulExpressionStatement","src":"1963:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1888:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1941:5:44","nodeType":"YulTypedName","src":"1941:5:44","type":""},{"name":"pos","nativeSrc":"1948:3:44","nodeType":"YulTypedName","src":"1948:3:44","type":""}],"src":"1888:118:44"},{"body":{"nativeSrc":"2110:124:44","nodeType":"YulBlock","src":"2110:124:44","statements":[{"nativeSrc":"2120:26:44","nodeType":"YulAssignment","src":"2120:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2132:9:44","nodeType":"YulIdentifier","src":"2132:9:44"},{"kind":"number","nativeSrc":"2143:2:44","nodeType":"YulLiteral","src":"2143:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2128:3:44","nodeType":"YulIdentifier","src":"2128:3:44"},"nativeSrc":"2128:18:44","nodeType":"YulFunctionCall","src":"2128:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2120:4:44","nodeType":"YulIdentifier","src":"2120:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2200:6:44","nodeType":"YulIdentifier","src":"2200:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2213:9:44","nodeType":"YulIdentifier","src":"2213:9:44"},{"kind":"number","nativeSrc":"2224:1:44","nodeType":"YulLiteral","src":"2224:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2209:3:44","nodeType":"YulIdentifier","src":"2209:3:44"},"nativeSrc":"2209:17:44","nodeType":"YulFunctionCall","src":"2209:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2156:43:44","nodeType":"YulIdentifier","src":"2156:43:44"},"nativeSrc":"2156:71:44","nodeType":"YulFunctionCall","src":"2156:71:44"},"nativeSrc":"2156:71:44","nodeType":"YulExpressionStatement","src":"2156:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2012:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2082:9:44","nodeType":"YulTypedName","src":"2082:9:44","type":""},{"name":"value0","nativeSrc":"2094:6:44","nodeType":"YulTypedName","src":"2094:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2105:4:44","nodeType":"YulTypedName","src":"2105:4:44","type":""}],"src":"2012:222:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_addresst_uint48t_address_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint48_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051611f8c380380611f8c83398181016040528101906100329190610430565b8181600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a65760006040517fc22c802200000000000000000000000000000000000000000000000000000000815260040161009d9190610492565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100de6000801b8261011d60201b60201c565b5050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050506104ad565b60008060001b83036101de57600073ffffffffffffffffffffffffffffffffffffffff1661014f6101f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461019c576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6101ee838361022060201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610232838361031d60201b60201c565b61031257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102af61038760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610317565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103bf82610394565b9050919050565b6103cf816103b4565b81146103da57600080fd5b50565b6000815190506103ec816103c6565b92915050565b600065ffffffffffff82169050919050565b61040d816103f2565b811461041857600080fd5b50565b60008151905061042a81610404565b92915050565b6000806000606084860312156104495761044861038f565b5b6000610457868287016103dd565b93505060206104688682870161041b565b9250506040610479868287016103dd565b9150509250925092565b61048c816103b4565b82525050565b60006020820190506104a76000830184610483565b92915050565b608051611ab66104d66000396000818161063e0152818161079601526109fb0152611ab66000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea26469706673582212204307e6557245d6962c4aa6df3b0d00da7f70a8fe6d588026bced90e93aa484cb64736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1F8C CODESIZE SUB DUP1 PUSH2 0x1F8C DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA6 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9D SWAP2 SWAP1 PUSH2 0x492 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDE PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x11D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP POP PUSH2 0x4AD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x1DE JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x14F PUSH2 0x1F6 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x19C JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1EE DUP4 DUP4 PUSH2 0x220 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x232 DUP4 DUP4 PUSH2 0x31D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x312 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x2AF PUSH2 0x387 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x317 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BF DUP3 PUSH2 0x394 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3CF DUP2 PUSH2 0x3B4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3EC DUP2 PUSH2 0x3C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x40D DUP2 PUSH2 0x3F2 JUMP JUMPDEST DUP2 EQ PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x42A DUP2 PUSH2 0x404 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x449 JUMPI PUSH2 0x448 PUSH2 0x38F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x457 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x468 DUP7 DUP3 DUP8 ADD PUSH2 0x41B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x479 DUP7 DUP3 DUP8 ADD PUSH2 0x3DD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x48C DUP2 PUSH2 0x3B4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4A7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x483 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1AB6 PUSH2 0x4D6 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x63E ADD MSTORE DUP2 DUP2 PUSH2 0x796 ADD MSTORE PUSH2 0x9FB ADD MSTORE PUSH2 0x1AB6 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 0x8DA5CB5B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3AD JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x324 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x27B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x44E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x207 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x283 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH2 0x703 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FD SWAP3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0x894 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x370 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP3 SWAP2 SWAP1 PUSH2 0x1818 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39C SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x96D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AB PUSH2 0x9B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x9CF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43C JUMPI POP PUSH2 0x43B DUP3 PUSH2 0xA8E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x45B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x463 PUSH2 0xB1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4EF DUP3 DUP3 PUSH2 0xB29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x537 JUMPI POP PUSH2 0x508 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 PUSH2 0x547 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x58D JUMPI POP PUSH2 0x58B DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x59E JUMPI POP PUSH2 0x59C DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5E0 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D7 SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x604 DUP3 DUP3 PUSH2 0xB74 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x615 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x61E DUP3 PUSH2 0xBEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x62F DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x638 DUP3 PUSH2 0xC6A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x694 PUSH2 0x660 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x726 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH2 0x736 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 PUSH2 0x75B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x794 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EF SWAP3 SWAP2 SWAP1 PUSH2 0x18D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x849 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x85A JUMPI POP PUSH2 0x859 DUP2 PUSH2 0xB60 JUMP JUMPDEST JUMPDEST PUSH2 0x878 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x88E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E PUSH2 0x92A JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8C0 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x91F JUMPI PUSH2 0x8E3 PUSH2 0xCD1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x916 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x927 PUSH2 0xCD9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x9A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH2 0xDA8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x9C4 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x9CC PUSH2 0xDCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x9F9 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA56 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x191C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB01 JUMPI POP PUSH2 0xB00 DUP3 PUSH2 0xDD7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB19 DUP2 PUSH2 0xB14 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB27 PUSH1 0x0 DUP1 PUSH2 0xE92 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xB32 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xB3B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xB45 DUP4 DUP4 PUSH2 0xF82 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEA DUP3 DUP3 PUSH2 0x104F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x826 JUMP JUMPDEST PUSH2 0xC02 TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x1982 JUMP JUMPDEST SWAP1 POP PUSH2 0xC18 DUP3 DUP3 PUSH2 0x112C JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 PUSH2 0x11DF JUMP JUMPDEST PUSH2 0xC7E TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC88 SWAP2 SWAP1 PUSH2 0x1982 JUMP JUMPDEST SWAP1 POP PUSH2 0xC94 DUP3 DUP3 PUSH2 0xE92 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCC5 SWAP3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE4 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCF1 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xD03 JUMPI POP PUSH2 0xD01 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xD45 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD3C SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD59 PUSH1 0x0 DUP1 SHL PUSH2 0xD54 PUSH2 0x660 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST POP PUSH2 0xD67 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xF82 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xDB1 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xDBA DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xDC4 DUP4 DUP4 PUSH2 0x104F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xDD5 PUSH1 0x0 DUP1 PUSH2 0x112C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4B DUP3 DUP3 PUSH2 0x699 JUMP JUMPDEST PUSH2 0xE8E JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE85 SWAP3 SWAP2 SWAP1 PUSH2 0x18D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xEB4 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0xF33 JUMPI PUSH2 0xEC2 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO PUSH2 0xF05 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF32 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x103D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAE PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1047 DUP4 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x1095 JUMPI POP PUSH2 0x1066 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x10CA DUP4 DUP4 PUSH2 0x132F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1124 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111B SWAP3 SWAP2 SWAP1 PUSH2 0x1A1D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1136 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x11A8 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0x11DA JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11EA PUSH2 0x826 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1214 JUMPI DUP3 DUP2 PUSH2 0x120F SWAP2 SWAP1 PUSH2 0x1A46 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1235 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1228 PUSH2 0x443 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1421 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124A DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST PUSH2 0x1324 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x12C1 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x133B DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x13B3 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x141B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NUMBER SMOD 0xE6 SSTORE PUSH19 0x45D6962C4AA6DF3B0D00DA7F70A8FE6D588026 0xBC 0xED SWAP1 0xE9 GASPRICE LOG4 DUP5 0xCB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"743:2140:36:-:0;;;1408:236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1554:12;1568:20;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1624:12:36::1;1600:37;;;;;;;;::::0;::::1;1408:236:::0;;;743:2140;;5509:370:9;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;88:117:44:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:97::-;881:7;921:14;914:5;910:26;899:37;;845:97;;;:::o;948:120::-;1020:23;1037:5;1020:23;:::i;:::-;1013:5;1010:34;1000:62;;1058:1;1055;1048:12;1000:62;948:120;:::o;1074:141::-;1130:5;1161:6;1155:13;1146:22;;1177:32;1203:5;1177:32;:::i;:::-;1074:141;;;;:::o;1221:661::-;1308:6;1316;1324;1373:2;1361:9;1352:7;1348:23;1344:32;1341:119;;;1379:79;;:::i;:::-;1341:119;1499:1;1524:64;1580:7;1571:6;1560:9;1556:22;1524:64;:::i;:::-;1514:74;;1470:128;1637:2;1663:63;1718:7;1709:6;1698:9;1694:22;1663:63;:::i;:::-;1653:73;;1608:128;1775:2;1801:64;1857:7;1848:6;1837:9;1833:22;1801:64;:::i;:::-;1791:74;;1746:129;1221:661;;;;;:::o;1888:118::-;1975:24;1993:5;1975:24;:::i;:::-;1970:3;1963:37;1888:118;;:::o;2012:222::-;2105:4;2143:2;2132:9;2128:18;2120:26;;2156:71;2224:1;2213:9;2209:17;2200:6;2156:71;:::i;:::-;2012:222;;;;:::o;743:2140:36:-;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_1222":{"entryPoint":1891,"id":1222,"parameterSlots":0,"returnSlots":0},"@REGISTER_DOMAIN_ROLE_7561":{"entryPoint":1157,"id":7561,"parameterSlots":0,"returnSlots":0},"@_acceptDefaultAdminTransfer_2244":{"entryPoint":3289,"id":2244,"parameterSlots":0,"returnSlots":0},"@_beginDefaultAdminTransfer_2152":{"entryPoint":3055,"id":2152,"parameterSlots":1,"returnSlots":0},"@_cancelDefaultAdminTransfer_2176":{"entryPoint":3530,"id":2176,"parameterSlots":0,"returnSlots":0},"@_changeDefaultAdminDelay_2287":{"entryPoint":3178,"id":2287,"parameterSlots":1,"returnSlots":0},"@_checkRole_1286":{"entryPoint":2824,"id":1286,"parameterSlots":1,"returnSlots":0},"@_checkRole_1307":{"entryPoint":3649,"id":1307,"parameterSlots":2,"returnSlots":0},"@_delayChangeWait_2339":{"entryPoint":4575,"id":2339,"parameterSlots":1,"returnSlots":1},"@_grantRole_1449":{"entryPoint":4670,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":3970,"id":1970,"parameterSlots":2,"returnSlots":1},"@_hasSchedulePassed_2435":{"entryPoint":2912,"id":2435,"parameterSlots":1,"returnSlots":1},"@_isScheduleSet_2421":{"entryPoint":2891,"id":2421,"parameterSlots":1,"returnSlots":1},"@_msgSender_3399":{"entryPoint":3281,"id":3399,"parameterSlots":0,"returnSlots":1},"@_revokeRole_1487":{"entryPoint":4911,"id":1487,"parameterSlots":2,"returnSlots":1},"@_revokeRole_2001":{"entryPoint":4175,"id":2001,"parameterSlots":2,"returnSlots":1},"@_rollbackDefaultAdminDelay_2308":{"entryPoint":2844,"id":2308,"parameterSlots":0,"returnSlots":0},"@_setPendingDefaultAdmin_2369":{"entryPoint":4396,"id":2369,"parameterSlots":2,"returnSlots":0},"@_setPendingDelay_2408":{"entryPoint":3730,"id":2408,"parameterSlots":2,"returnSlots":0},"@acceptDefaultAdminTransfer_2200":{"entryPoint":2196,"id":2200,"parameterSlots":0,"returnSlots":0},"@beginDefaultAdminTransfer_2124":{"entryPoint":1544,"id":2124,"parameterSlots":1,"returnSlots":0},"@cancelDefaultAdminTransfer_2163":{"entryPoint":2487,"id":2163,"parameterSlots":0,"returnSlots":0},"@changeDefaultAdminDelay_2258":{"entryPoint":1570,"id":2258,"parameterSlots":1,"returnSlots":0},"@defaultAdminDelayIncreaseWait_2110":{"entryPoint":1091,"id":2110,"parameterSlots":0,"returnSlots":1},"@defaultAdminDelay_2071":{"entryPoint":2086,"id":2071,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":1632,"id":2035,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_1321":{"entryPoint":1126,"id":1321,"parameterSlots":1,"returnSlots":1},"@grantRole_1340":{"entryPoint":2857,"id":1340,"parameterSlots":2,"returnSlots":0},"@grantRole_1843":{"entryPoint":1193,"id":1843,"parameterSlots":2,"returnSlots":0},"@hasRole_1273":{"entryPoint":1689,"id":1273,"parameterSlots":2,"returnSlots":1},"@min_4003":{"entryPoint":5153,"id":4003,"parameterSlots":2,"returnSlots":1},"@owner_1816":{"entryPoint":1674,"id":1816,"parameterSlots":0,"returnSlots":1},"@pendingDefaultAdminDelay_2101":{"entryPoint":1795,"id":2101,"parameterSlots":0,"returnSlots":2},"@pendingDefaultAdmin_2048":{"entryPoint":2346,"id":2048,"parameterSlots":0,"returnSlots":2},"@registerDomainWithVerifier_7627":{"entryPoint":2511,"id":7627,"parameterSlots":3,"returnSlots":0},"@registerDomain_7604":{"entryPoint":1898,"id":7604,"parameterSlots":2,"returnSlots":0},"@registry_7564":{"entryPoint":1596,"id":7564,"parameterSlots":0,"returnSlots":0},"@renounceRole_1382":{"entryPoint":2932,"id":1382,"parameterSlots":2,"returnSlots":0},"@renounceRole_1931":{"entryPoint":1267,"id":1931,"parameterSlots":2,"returnSlots":0},"@revokeRole_1359":{"entryPoint":3496,"id":1359,"parameterSlots":2,"returnSlots":0},"@revokeRole_1870":{"entryPoint":2413,"id":1870,"parameterSlots":2,"returnSlots":0},"@rollbackDefaultAdminDelay_2298":{"entryPoint":1102,"id":2298,"parameterSlots":0,"returnSlots":0},"@supportsInterface_1255":{"entryPoint":2702,"id":1255,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1806":{"entryPoint":969,"id":1806,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3755":{"entryPoint":3543,"id":3755,"parameterSlots":1,"returnSlots":1},"@ternary_3965":{"entryPoint":5176,"id":3965,"parameterSlots":3,"returnSlots":1},"@toUint48_6129":{"entryPoint":4306,"id":6129,"parameterSlots":1,"returnSlots":1},"@toUint_7138":{"entryPoint":5202,"id":7138,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5680,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":5499,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5286,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IVerifier_$8474":{"entryPoint":6250,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48":{"entryPoint":5833,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5765,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":6104,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474":{"entryPoint":6271,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":5520,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":5701,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5307,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint48":{"entryPoint":5854,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6021,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5364,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5565,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack":{"entryPoint":5979,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack":{"entryPoint":6413,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack":{"entryPoint":6645,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6670,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint48_to_t_uint48_fromStack":{"entryPoint":5424,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6036,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":6354,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed":{"entryPoint":6428,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed":{"entryPoint":6168,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5379,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":5580,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed":{"entryPoint":5994,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":6685,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed":{"entryPoint":5439,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed":{"entryPoint":6063,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint48":{"entryPoint":6530,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint48":{"entryPoint":6726,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5639,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5352,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5466,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5219,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IVerifier_$8474":{"entryPoint":6209,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_48_by_1":{"entryPoint":6588,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5607,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6660,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":5406,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":6598,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISciRegistry_$8112_to_t_address":{"entryPoint":5961,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IVerifier_$8474_to_t_address":{"entryPoint":6395,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_48_by_1_to_t_uint8":{"entryPoint":6611,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":5943,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":5909,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":5899,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":6483,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5214,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5657,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":5476,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5263,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IVerifier_$8474":{"entryPoint":6227,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":5810,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11304:44","nodeType":"YulBlock","src":"0:11304:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"378:105:44","nodeType":"YulBlock","src":"378:105:44","statements":[{"nativeSrc":"388:89:44","nodeType":"YulAssignment","src":"388:89:44","value":{"arguments":[{"name":"value","nativeSrc":"403:5:44","nodeType":"YulIdentifier","src":"403:5:44"},{"kind":"number","nativeSrc":"410:66:44","nodeType":"YulLiteral","src":"410:66:44","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:44","nodeType":"YulIdentifier","src":"399:3:44"},"nativeSrc":"399:78:44","nodeType":"YulFunctionCall","src":"399:78:44"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:44","nodeType":"YulIdentifier","src":"388:7:44"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:44","nodeType":"YulTypedName","src":"360:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:44","nodeType":"YulTypedName","src":"370:7:44","type":""}],"src":"334:149:44"},{"body":{"nativeSrc":"531:78:44","nodeType":"YulBlock","src":"531:78:44","statements":[{"body":{"nativeSrc":"587:16:44","nodeType":"YulBlock","src":"587:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:44","nodeType":"YulLiteral","src":"596:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:44","nodeType":"YulLiteral","src":"599:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:44","nodeType":"YulIdentifier","src":"589:6:44"},"nativeSrc":"589:12:44","nodeType":"YulFunctionCall","src":"589:12:44"},"nativeSrc":"589:12:44","nodeType":"YulExpressionStatement","src":"589:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:44","nodeType":"YulIdentifier","src":"554:5:44"},{"arguments":[{"name":"value","nativeSrc":"578:5:44","nodeType":"YulIdentifier","src":"578:5:44"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:44","nodeType":"YulIdentifier","src":"561:16:44"},"nativeSrc":"561:23:44","nodeType":"YulFunctionCall","src":"561:23:44"}],"functionName":{"name":"eq","nativeSrc":"551:2:44","nodeType":"YulIdentifier","src":"551:2:44"},"nativeSrc":"551:34:44","nodeType":"YulFunctionCall","src":"551:34:44"}],"functionName":{"name":"iszero","nativeSrc":"544:6:44","nodeType":"YulIdentifier","src":"544:6:44"},"nativeSrc":"544:42:44","nodeType":"YulFunctionCall","src":"544:42:44"},"nativeSrc":"541:62:44","nodeType":"YulIf","src":"541:62:44"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:44","nodeType":"YulTypedName","src":"524:5:44","type":""}],"src":"489:120:44"},{"body":{"nativeSrc":"666:86:44","nodeType":"YulBlock","src":"666:86:44","statements":[{"nativeSrc":"676:29:44","nodeType":"YulAssignment","src":"676:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:44","nodeType":"YulIdentifier","src":"698:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:44","nodeType":"YulIdentifier","src":"685:12:44"},"nativeSrc":"685:20:44","nodeType":"YulFunctionCall","src":"685:20:44"},"variableNames":[{"name":"value","nativeSrc":"676:5:44","nodeType":"YulIdentifier","src":"676:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:44","nodeType":"YulIdentifier","src":"740:5:44"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:44","nodeType":"YulIdentifier","src":"714:25:44"},"nativeSrc":"714:32:44","nodeType":"YulFunctionCall","src":"714:32:44"},"nativeSrc":"714:32:44","nodeType":"YulExpressionStatement","src":"714:32:44"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:44","nodeType":"YulTypedName","src":"644:6:44","type":""},{"name":"end","nativeSrc":"652:3:44","nodeType":"YulTypedName","src":"652:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:44","nodeType":"YulTypedName","src":"660:5:44","type":""}],"src":"615:137:44"},{"body":{"nativeSrc":"823:262:44","nodeType":"YulBlock","src":"823:262:44","statements":[{"body":{"nativeSrc":"869:83:44","nodeType":"YulBlock","src":"869:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:44","nodeType":"YulIdentifier","src":"871:77:44"},"nativeSrc":"871:79:44","nodeType":"YulFunctionCall","src":"871:79:44"},"nativeSrc":"871:79:44","nodeType":"YulExpressionStatement","src":"871:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:44","nodeType":"YulIdentifier","src":"844:7:44"},{"name":"headStart","nativeSrc":"853:9:44","nodeType":"YulIdentifier","src":"853:9:44"}],"functionName":{"name":"sub","nativeSrc":"840:3:44","nodeType":"YulIdentifier","src":"840:3:44"},"nativeSrc":"840:23:44","nodeType":"YulFunctionCall","src":"840:23:44"},{"kind":"number","nativeSrc":"865:2:44","nodeType":"YulLiteral","src":"865:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:44","nodeType":"YulIdentifier","src":"836:3:44"},"nativeSrc":"836:32:44","nodeType":"YulFunctionCall","src":"836:32:44"},"nativeSrc":"833:119:44","nodeType":"YulIf","src":"833:119:44"},{"nativeSrc":"962:116:44","nodeType":"YulBlock","src":"962:116:44","statements":[{"nativeSrc":"977:15:44","nodeType":"YulVariableDeclaration","src":"977:15:44","value":{"kind":"number","nativeSrc":"991:1:44","nodeType":"YulLiteral","src":"991:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:44","nodeType":"YulTypedName","src":"981:6:44","type":""}]},{"nativeSrc":"1006:62:44","nodeType":"YulAssignment","src":"1006:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:44","nodeType":"YulIdentifier","src":"1040:9:44"},{"name":"offset","nativeSrc":"1051:6:44","nodeType":"YulIdentifier","src":"1051:6:44"}],"functionName":{"name":"add","nativeSrc":"1036:3:44","nodeType":"YulIdentifier","src":"1036:3:44"},"nativeSrc":"1036:22:44","nodeType":"YulFunctionCall","src":"1036:22:44"},{"name":"dataEnd","nativeSrc":"1060:7:44","nodeType":"YulIdentifier","src":"1060:7:44"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:44","nodeType":"YulIdentifier","src":"1016:19:44"},"nativeSrc":"1016:52:44","nodeType":"YulFunctionCall","src":"1016:52:44"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:44","nodeType":"YulIdentifier","src":"1006:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:44","nodeType":"YulTypedName","src":"793:9:44","type":""},{"name":"dataEnd","nativeSrc":"804:7:44","nodeType":"YulTypedName","src":"804:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:44","nodeType":"YulTypedName","src":"816:6:44","type":""}],"src":"758:327:44"},{"body":{"nativeSrc":"1133:48:44","nodeType":"YulBlock","src":"1133:48:44","statements":[{"nativeSrc":"1143:32:44","nodeType":"YulAssignment","src":"1143:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:44","nodeType":"YulIdentifier","src":"1168:5:44"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"},"nativeSrc":"1161:13:44","nodeType":"YulFunctionCall","src":"1161:13:44"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:44","nodeType":"YulIdentifier","src":"1154:6:44"},"nativeSrc":"1154:21:44","nodeType":"YulFunctionCall","src":"1154:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:44","nodeType":"YulIdentifier","src":"1143:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:44","nodeType":"YulTypedName","src":"1115:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:44","nodeType":"YulTypedName","src":"1125:7:44","type":""}],"src":"1091:90:44"},{"body":{"nativeSrc":"1246:50:44","nodeType":"YulBlock","src":"1246:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:44","nodeType":"YulIdentifier","src":"1263:3:44"},{"arguments":[{"name":"value","nativeSrc":"1283:5:44","nodeType":"YulIdentifier","src":"1283:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:44","nodeType":"YulIdentifier","src":"1268:14:44"},"nativeSrc":"1268:21:44","nodeType":"YulFunctionCall","src":"1268:21:44"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:44","nodeType":"YulIdentifier","src":"1256:6:44"},"nativeSrc":"1256:34:44","nodeType":"YulFunctionCall","src":"1256:34:44"},"nativeSrc":"1256:34:44","nodeType":"YulExpressionStatement","src":"1256:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:44","nodeType":"YulTypedName","src":"1234:5:44","type":""},{"name":"pos","nativeSrc":"1241:3:44","nodeType":"YulTypedName","src":"1241:3:44","type":""}],"src":"1187:109:44"},{"body":{"nativeSrc":"1394:118:44","nodeType":"YulBlock","src":"1394:118:44","statements":[{"nativeSrc":"1404:26:44","nodeType":"YulAssignment","src":"1404:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:44","nodeType":"YulIdentifier","src":"1416:9:44"},{"kind":"number","nativeSrc":"1427:2:44","nodeType":"YulLiteral","src":"1427:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:44","nodeType":"YulIdentifier","src":"1412:3:44"},"nativeSrc":"1412:18:44","nodeType":"YulFunctionCall","src":"1412:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:44","nodeType":"YulIdentifier","src":"1404:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:44","nodeType":"YulIdentifier","src":"1478:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:44","nodeType":"YulIdentifier","src":"1491:9:44"},{"kind":"number","nativeSrc":"1502:1:44","nodeType":"YulLiteral","src":"1502:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:44","nodeType":"YulIdentifier","src":"1487:3:44"},"nativeSrc":"1487:17:44","nodeType":"YulFunctionCall","src":"1487:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:44","nodeType":"YulIdentifier","src":"1440:37:44"},"nativeSrc":"1440:65:44","nodeType":"YulFunctionCall","src":"1440:65:44"},"nativeSrc":"1440:65:44","nodeType":"YulExpressionStatement","src":"1440:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:44","nodeType":"YulTypedName","src":"1366:9:44","type":""},{"name":"value0","nativeSrc":"1378:6:44","nodeType":"YulTypedName","src":"1378:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:44","nodeType":"YulTypedName","src":"1389:4:44","type":""}],"src":"1302:210:44"},{"body":{"nativeSrc":"1562:53:44","nodeType":"YulBlock","src":"1562:53:44","statements":[{"nativeSrc":"1572:37:44","nodeType":"YulAssignment","src":"1572:37:44","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:44","nodeType":"YulIdentifier","src":"1587:5:44"},{"kind":"number","nativeSrc":"1594:14:44","nodeType":"YulLiteral","src":"1594:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:44","nodeType":"YulIdentifier","src":"1583:3:44"},"nativeSrc":"1583:26:44","nodeType":"YulFunctionCall","src":"1583:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:44","nodeType":"YulIdentifier","src":"1572:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"1518:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:44","nodeType":"YulTypedName","src":"1544:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:44","nodeType":"YulTypedName","src":"1554:7:44","type":""}],"src":"1518:97:44"},{"body":{"nativeSrc":"1684:52:44","nodeType":"YulBlock","src":"1684:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1701:3:44","nodeType":"YulIdentifier","src":"1701:3:44"},{"arguments":[{"name":"value","nativeSrc":"1723:5:44","nodeType":"YulIdentifier","src":"1723:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1706:16:44","nodeType":"YulIdentifier","src":"1706:16:44"},"nativeSrc":"1706:23:44","nodeType":"YulFunctionCall","src":"1706:23:44"}],"functionName":{"name":"mstore","nativeSrc":"1694:6:44","nodeType":"YulIdentifier","src":"1694:6:44"},"nativeSrc":"1694:36:44","nodeType":"YulFunctionCall","src":"1694:36:44"},"nativeSrc":"1694:36:44","nodeType":"YulExpressionStatement","src":"1694:36:44"}]},"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1621:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1672:5:44","nodeType":"YulTypedName","src":"1672:5:44","type":""},{"name":"pos","nativeSrc":"1679:3:44","nodeType":"YulTypedName","src":"1679:3:44","type":""}],"src":"1621:115:44"},{"body":{"nativeSrc":"1838:122:44","nodeType":"YulBlock","src":"1838:122:44","statements":[{"nativeSrc":"1848:26:44","nodeType":"YulAssignment","src":"1848:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1860:9:44","nodeType":"YulIdentifier","src":"1860:9:44"},{"kind":"number","nativeSrc":"1871:2:44","nodeType":"YulLiteral","src":"1871:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1856:3:44","nodeType":"YulIdentifier","src":"1856:3:44"},"nativeSrc":"1856:18:44","nodeType":"YulFunctionCall","src":"1856:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1848:4:44","nodeType":"YulIdentifier","src":"1848:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1926:6:44","nodeType":"YulIdentifier","src":"1926:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1939:9:44","nodeType":"YulIdentifier","src":"1939:9:44"},{"kind":"number","nativeSrc":"1950:1:44","nodeType":"YulLiteral","src":"1950:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1935:3:44","nodeType":"YulIdentifier","src":"1935:3:44"},"nativeSrc":"1935:17:44","nodeType":"YulFunctionCall","src":"1935:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1884:41:44","nodeType":"YulIdentifier","src":"1884:41:44"},"nativeSrc":"1884:69:44","nodeType":"YulFunctionCall","src":"1884:69:44"},"nativeSrc":"1884:69:44","nodeType":"YulExpressionStatement","src":"1884:69:44"}]},"name":"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed","nativeSrc":"1742:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1810:9:44","nodeType":"YulTypedName","src":"1810:9:44","type":""},{"name":"value0","nativeSrc":"1822:6:44","nodeType":"YulTypedName","src":"1822:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1833:4:44","nodeType":"YulTypedName","src":"1833:4:44","type":""}],"src":"1742:218:44"},{"body":{"nativeSrc":"2011:32:44","nodeType":"YulBlock","src":"2011:32:44","statements":[{"nativeSrc":"2021:16:44","nodeType":"YulAssignment","src":"2021:16:44","value":{"name":"value","nativeSrc":"2032:5:44","nodeType":"YulIdentifier","src":"2032:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2021:7:44","nodeType":"YulIdentifier","src":"2021:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1966:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulTypedName","src":"1993:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2003:7:44","nodeType":"YulTypedName","src":"2003:7:44","type":""}],"src":"1966:77:44"},{"body":{"nativeSrc":"2092:79:44","nodeType":"YulBlock","src":"2092:79:44","statements":[{"body":{"nativeSrc":"2149:16:44","nodeType":"YulBlock","src":"2149:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2158:1:44","nodeType":"YulLiteral","src":"2158:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2161:1:44","nodeType":"YulLiteral","src":"2161:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2151:6:44","nodeType":"YulIdentifier","src":"2151:6:44"},"nativeSrc":"2151:12:44","nodeType":"YulFunctionCall","src":"2151:12:44"},"nativeSrc":"2151:12:44","nodeType":"YulExpressionStatement","src":"2151:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2115:5:44","nodeType":"YulIdentifier","src":"2115:5:44"},{"arguments":[{"name":"value","nativeSrc":"2140:5:44","nodeType":"YulIdentifier","src":"2140:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2122:17:44","nodeType":"YulIdentifier","src":"2122:17:44"},"nativeSrc":"2122:24:44","nodeType":"YulFunctionCall","src":"2122:24:44"}],"functionName":{"name":"eq","nativeSrc":"2112:2:44","nodeType":"YulIdentifier","src":"2112:2:44"},"nativeSrc":"2112:35:44","nodeType":"YulFunctionCall","src":"2112:35:44"}],"functionName":{"name":"iszero","nativeSrc":"2105:6:44","nodeType":"YulIdentifier","src":"2105:6:44"},"nativeSrc":"2105:43:44","nodeType":"YulFunctionCall","src":"2105:43:44"},"nativeSrc":"2102:63:44","nodeType":"YulIf","src":"2102:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"2049:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2085:5:44","nodeType":"YulTypedName","src":"2085:5:44","type":""}],"src":"2049:122:44"},{"body":{"nativeSrc":"2229:87:44","nodeType":"YulBlock","src":"2229:87:44","statements":[{"nativeSrc":"2239:29:44","nodeType":"YulAssignment","src":"2239:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"2261:6:44","nodeType":"YulIdentifier","src":"2261:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"2248:12:44","nodeType":"YulIdentifier","src":"2248:12:44"},"nativeSrc":"2248:20:44","nodeType":"YulFunctionCall","src":"2248:20:44"},"variableNames":[{"name":"value","nativeSrc":"2239:5:44","nodeType":"YulIdentifier","src":"2239:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2304:5:44","nodeType":"YulIdentifier","src":"2304:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"2277:26:44","nodeType":"YulIdentifier","src":"2277:26:44"},"nativeSrc":"2277:33:44","nodeType":"YulFunctionCall","src":"2277:33:44"},"nativeSrc":"2277:33:44","nodeType":"YulExpressionStatement","src":"2277:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"2177:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2207:6:44","nodeType":"YulTypedName","src":"2207:6:44","type":""},{"name":"end","nativeSrc":"2215:3:44","nodeType":"YulTypedName","src":"2215:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2223:5:44","nodeType":"YulTypedName","src":"2223:5:44","type":""}],"src":"2177:139:44"},{"body":{"nativeSrc":"2388:263:44","nodeType":"YulBlock","src":"2388:263:44","statements":[{"body":{"nativeSrc":"2434:83:44","nodeType":"YulBlock","src":"2434:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2436:77:44","nodeType":"YulIdentifier","src":"2436:77:44"},"nativeSrc":"2436:79:44","nodeType":"YulFunctionCall","src":"2436:79:44"},"nativeSrc":"2436:79:44","nodeType":"YulExpressionStatement","src":"2436:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2409:7:44","nodeType":"YulIdentifier","src":"2409:7:44"},{"name":"headStart","nativeSrc":"2418:9:44","nodeType":"YulIdentifier","src":"2418:9:44"}],"functionName":{"name":"sub","nativeSrc":"2405:3:44","nodeType":"YulIdentifier","src":"2405:3:44"},"nativeSrc":"2405:23:44","nodeType":"YulFunctionCall","src":"2405:23:44"},{"kind":"number","nativeSrc":"2430:2:44","nodeType":"YulLiteral","src":"2430:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2401:3:44","nodeType":"YulIdentifier","src":"2401:3:44"},"nativeSrc":"2401:32:44","nodeType":"YulFunctionCall","src":"2401:32:44"},"nativeSrc":"2398:119:44","nodeType":"YulIf","src":"2398:119:44"},{"nativeSrc":"2527:117:44","nodeType":"YulBlock","src":"2527:117:44","statements":[{"nativeSrc":"2542:15:44","nodeType":"YulVariableDeclaration","src":"2542:15:44","value":{"kind":"number","nativeSrc":"2556:1:44","nodeType":"YulLiteral","src":"2556:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2546:6:44","nodeType":"YulTypedName","src":"2546:6:44","type":""}]},{"nativeSrc":"2571:63:44","nodeType":"YulAssignment","src":"2571:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2606:9:44","nodeType":"YulIdentifier","src":"2606:9:44"},{"name":"offset","nativeSrc":"2617:6:44","nodeType":"YulIdentifier","src":"2617:6:44"}],"functionName":{"name":"add","nativeSrc":"2602:3:44","nodeType":"YulIdentifier","src":"2602:3:44"},"nativeSrc":"2602:22:44","nodeType":"YulFunctionCall","src":"2602:22:44"},{"name":"dataEnd","nativeSrc":"2626:7:44","nodeType":"YulIdentifier","src":"2626:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2581:20:44","nodeType":"YulIdentifier","src":"2581:20:44"},"nativeSrc":"2581:53:44","nodeType":"YulFunctionCall","src":"2581:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2571:6:44","nodeType":"YulIdentifier","src":"2571:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"2322:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2358:9:44","nodeType":"YulTypedName","src":"2358:9:44","type":""},{"name":"dataEnd","nativeSrc":"2369:7:44","nodeType":"YulTypedName","src":"2369:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2381:6:44","nodeType":"YulTypedName","src":"2381:6:44","type":""}],"src":"2322:329:44"},{"body":{"nativeSrc":"2722:53:44","nodeType":"YulBlock","src":"2722:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2739:3:44","nodeType":"YulIdentifier","src":"2739:3:44"},{"arguments":[{"name":"value","nativeSrc":"2762:5:44","nodeType":"YulIdentifier","src":"2762:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2744:17:44","nodeType":"YulIdentifier","src":"2744:17:44"},"nativeSrc":"2744:24:44","nodeType":"YulFunctionCall","src":"2744:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2732:6:44","nodeType":"YulIdentifier","src":"2732:6:44"},"nativeSrc":"2732:37:44","nodeType":"YulFunctionCall","src":"2732:37:44"},"nativeSrc":"2732:37:44","nodeType":"YulExpressionStatement","src":"2732:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2657:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2710:5:44","nodeType":"YulTypedName","src":"2710:5:44","type":""},{"name":"pos","nativeSrc":"2717:3:44","nodeType":"YulTypedName","src":"2717:3:44","type":""}],"src":"2657:118:44"},{"body":{"nativeSrc":"2879:124:44","nodeType":"YulBlock","src":"2879:124:44","statements":[{"nativeSrc":"2889:26:44","nodeType":"YulAssignment","src":"2889:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2901:9:44","nodeType":"YulIdentifier","src":"2901:9:44"},{"kind":"number","nativeSrc":"2912:2:44","nodeType":"YulLiteral","src":"2912:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2897:3:44","nodeType":"YulIdentifier","src":"2897:3:44"},"nativeSrc":"2897:18:44","nodeType":"YulFunctionCall","src":"2897:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2889:4:44","nodeType":"YulIdentifier","src":"2889:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2969:6:44","nodeType":"YulIdentifier","src":"2969:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2982:9:44","nodeType":"YulIdentifier","src":"2982:9:44"},{"kind":"number","nativeSrc":"2993:1:44","nodeType":"YulLiteral","src":"2993:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2978:3:44","nodeType":"YulIdentifier","src":"2978:3:44"},"nativeSrc":"2978:17:44","nodeType":"YulFunctionCall","src":"2978:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2925:43:44","nodeType":"YulIdentifier","src":"2925:43:44"},"nativeSrc":"2925:71:44","nodeType":"YulFunctionCall","src":"2925:71:44"},"nativeSrc":"2925:71:44","nodeType":"YulExpressionStatement","src":"2925:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2781:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2851:9:44","nodeType":"YulTypedName","src":"2851:9:44","type":""},{"name":"value0","nativeSrc":"2863:6:44","nodeType":"YulTypedName","src":"2863:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2874:4:44","nodeType":"YulTypedName","src":"2874:4:44","type":""}],"src":"2781:222:44"},{"body":{"nativeSrc":"3054:81:44","nodeType":"YulBlock","src":"3054:81:44","statements":[{"nativeSrc":"3064:65:44","nodeType":"YulAssignment","src":"3064:65:44","value":{"arguments":[{"name":"value","nativeSrc":"3079:5:44","nodeType":"YulIdentifier","src":"3079:5:44"},{"kind":"number","nativeSrc":"3086:42:44","nodeType":"YulLiteral","src":"3086:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3075:3:44","nodeType":"YulIdentifier","src":"3075:3:44"},"nativeSrc":"3075:54:44","nodeType":"YulFunctionCall","src":"3075:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3064:7:44","nodeType":"YulIdentifier","src":"3064:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3009:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3036:5:44","nodeType":"YulTypedName","src":"3036:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3046:7:44","nodeType":"YulTypedName","src":"3046:7:44","type":""}],"src":"3009:126:44"},{"body":{"nativeSrc":"3186:51:44","nodeType":"YulBlock","src":"3186:51:44","statements":[{"nativeSrc":"3196:35:44","nodeType":"YulAssignment","src":"3196:35:44","value":{"arguments":[{"name":"value","nativeSrc":"3225:5:44","nodeType":"YulIdentifier","src":"3225:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3207:17:44","nodeType":"YulIdentifier","src":"3207:17:44"},"nativeSrc":"3207:24:44","nodeType":"YulFunctionCall","src":"3207:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3196:7:44","nodeType":"YulIdentifier","src":"3196:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"3141:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3168:5:44","nodeType":"YulTypedName","src":"3168:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3178:7:44","nodeType":"YulTypedName","src":"3178:7:44","type":""}],"src":"3141:96:44"},{"body":{"nativeSrc":"3286:79:44","nodeType":"YulBlock","src":"3286:79:44","statements":[{"body":{"nativeSrc":"3343:16:44","nodeType":"YulBlock","src":"3343:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3352:1:44","nodeType":"YulLiteral","src":"3352:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3355:1:44","nodeType":"YulLiteral","src":"3355:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3345:6:44","nodeType":"YulIdentifier","src":"3345:6:44"},"nativeSrc":"3345:12:44","nodeType":"YulFunctionCall","src":"3345:12:44"},"nativeSrc":"3345:12:44","nodeType":"YulExpressionStatement","src":"3345:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3309:5:44","nodeType":"YulIdentifier","src":"3309:5:44"},{"arguments":[{"name":"value","nativeSrc":"3334:5:44","nodeType":"YulIdentifier","src":"3334:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3316:17:44","nodeType":"YulIdentifier","src":"3316:17:44"},"nativeSrc":"3316:24:44","nodeType":"YulFunctionCall","src":"3316:24:44"}],"functionName":{"name":"eq","nativeSrc":"3306:2:44","nodeType":"YulIdentifier","src":"3306:2:44"},"nativeSrc":"3306:35:44","nodeType":"YulFunctionCall","src":"3306:35:44"}],"functionName":{"name":"iszero","nativeSrc":"3299:6:44","nodeType":"YulIdentifier","src":"3299:6:44"},"nativeSrc":"3299:43:44","nodeType":"YulFunctionCall","src":"3299:43:44"},"nativeSrc":"3296:63:44","nodeType":"YulIf","src":"3296:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"3243:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3279:5:44","nodeType":"YulTypedName","src":"3279:5:44","type":""}],"src":"3243:122:44"},{"body":{"nativeSrc":"3423:87:44","nodeType":"YulBlock","src":"3423:87:44","statements":[{"nativeSrc":"3433:29:44","nodeType":"YulAssignment","src":"3433:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3455:6:44","nodeType":"YulIdentifier","src":"3455:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3442:12:44","nodeType":"YulIdentifier","src":"3442:12:44"},"nativeSrc":"3442:20:44","nodeType":"YulFunctionCall","src":"3442:20:44"},"variableNames":[{"name":"value","nativeSrc":"3433:5:44","nodeType":"YulIdentifier","src":"3433:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3498:5:44","nodeType":"YulIdentifier","src":"3498:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3471:26:44","nodeType":"YulIdentifier","src":"3471:26:44"},"nativeSrc":"3471:33:44","nodeType":"YulFunctionCall","src":"3471:33:44"},"nativeSrc":"3471:33:44","nodeType":"YulExpressionStatement","src":"3471:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"3371:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3401:6:44","nodeType":"YulTypedName","src":"3401:6:44","type":""},{"name":"end","nativeSrc":"3409:3:44","nodeType":"YulTypedName","src":"3409:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3417:5:44","nodeType":"YulTypedName","src":"3417:5:44","type":""}],"src":"3371:139:44"},{"body":{"nativeSrc":"3599:391:44","nodeType":"YulBlock","src":"3599:391:44","statements":[{"body":{"nativeSrc":"3645:83:44","nodeType":"YulBlock","src":"3645:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3647:77:44","nodeType":"YulIdentifier","src":"3647:77:44"},"nativeSrc":"3647:79:44","nodeType":"YulFunctionCall","src":"3647:79:44"},"nativeSrc":"3647:79:44","nodeType":"YulExpressionStatement","src":"3647:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3620:7:44","nodeType":"YulIdentifier","src":"3620:7:44"},{"name":"headStart","nativeSrc":"3629:9:44","nodeType":"YulIdentifier","src":"3629:9:44"}],"functionName":{"name":"sub","nativeSrc":"3616:3:44","nodeType":"YulIdentifier","src":"3616:3:44"},"nativeSrc":"3616:23:44","nodeType":"YulFunctionCall","src":"3616:23:44"},{"kind":"number","nativeSrc":"3641:2:44","nodeType":"YulLiteral","src":"3641:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3612:3:44","nodeType":"YulIdentifier","src":"3612:3:44"},"nativeSrc":"3612:32:44","nodeType":"YulFunctionCall","src":"3612:32:44"},"nativeSrc":"3609:119:44","nodeType":"YulIf","src":"3609:119:44"},{"nativeSrc":"3738:117:44","nodeType":"YulBlock","src":"3738:117:44","statements":[{"nativeSrc":"3753:15:44","nodeType":"YulVariableDeclaration","src":"3753:15:44","value":{"kind":"number","nativeSrc":"3767:1:44","nodeType":"YulLiteral","src":"3767:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3757:6:44","nodeType":"YulTypedName","src":"3757:6:44","type":""}]},{"nativeSrc":"3782:63:44","nodeType":"YulAssignment","src":"3782:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:44","nodeType":"YulIdentifier","src":"3817:9:44"},{"name":"offset","nativeSrc":"3828:6:44","nodeType":"YulIdentifier","src":"3828:6:44"}],"functionName":{"name":"add","nativeSrc":"3813:3:44","nodeType":"YulIdentifier","src":"3813:3:44"},"nativeSrc":"3813:22:44","nodeType":"YulFunctionCall","src":"3813:22:44"},{"name":"dataEnd","nativeSrc":"3837:7:44","nodeType":"YulIdentifier","src":"3837:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"3792:20:44","nodeType":"YulIdentifier","src":"3792:20:44"},"nativeSrc":"3792:53:44","nodeType":"YulFunctionCall","src":"3792:53:44"},"variableNames":[{"name":"value0","nativeSrc":"3782:6:44","nodeType":"YulIdentifier","src":"3782:6:44"}]}]},{"nativeSrc":"3865:118:44","nodeType":"YulBlock","src":"3865:118:44","statements":[{"nativeSrc":"3880:16:44","nodeType":"YulVariableDeclaration","src":"3880:16:44","value":{"kind":"number","nativeSrc":"3894:2:44","nodeType":"YulLiteral","src":"3894:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3884:6:44","nodeType":"YulTypedName","src":"3884:6:44","type":""}]},{"nativeSrc":"3910:63:44","nodeType":"YulAssignment","src":"3910:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3945:9:44","nodeType":"YulIdentifier","src":"3945:9:44"},{"name":"offset","nativeSrc":"3956:6:44","nodeType":"YulIdentifier","src":"3956:6:44"}],"functionName":{"name":"add","nativeSrc":"3941:3:44","nodeType":"YulIdentifier","src":"3941:3:44"},"nativeSrc":"3941:22:44","nodeType":"YulFunctionCall","src":"3941:22:44"},{"name":"dataEnd","nativeSrc":"3965:7:44","nodeType":"YulIdentifier","src":"3965:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3920:20:44","nodeType":"YulIdentifier","src":"3920:20:44"},"nativeSrc":"3920:53:44","nodeType":"YulFunctionCall","src":"3920:53:44"},"variableNames":[{"name":"value1","nativeSrc":"3910:6:44","nodeType":"YulIdentifier","src":"3910:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"3516:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3561:9:44","nodeType":"YulTypedName","src":"3561:9:44","type":""},{"name":"dataEnd","nativeSrc":"3572:7:44","nodeType":"YulTypedName","src":"3572:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3584:6:44","nodeType":"YulTypedName","src":"3584:6:44","type":""},{"name":"value1","nativeSrc":"3592:6:44","nodeType":"YulTypedName","src":"3592:6:44","type":""}],"src":"3516:474:44"},{"body":{"nativeSrc":"4062:263:44","nodeType":"YulBlock","src":"4062:263:44","statements":[{"body":{"nativeSrc":"4108:83:44","nodeType":"YulBlock","src":"4108:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4110:77:44","nodeType":"YulIdentifier","src":"4110:77:44"},"nativeSrc":"4110:79:44","nodeType":"YulFunctionCall","src":"4110:79:44"},"nativeSrc":"4110:79:44","nodeType":"YulExpressionStatement","src":"4110:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4083:7:44","nodeType":"YulIdentifier","src":"4083:7:44"},{"name":"headStart","nativeSrc":"4092:9:44","nodeType":"YulIdentifier","src":"4092:9:44"}],"functionName":{"name":"sub","nativeSrc":"4079:3:44","nodeType":"YulIdentifier","src":"4079:3:44"},"nativeSrc":"4079:23:44","nodeType":"YulFunctionCall","src":"4079:23:44"},{"kind":"number","nativeSrc":"4104:2:44","nodeType":"YulLiteral","src":"4104:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4075:3:44","nodeType":"YulIdentifier","src":"4075:3:44"},"nativeSrc":"4075:32:44","nodeType":"YulFunctionCall","src":"4075:32:44"},"nativeSrc":"4072:119:44","nodeType":"YulIf","src":"4072:119:44"},{"nativeSrc":"4201:117:44","nodeType":"YulBlock","src":"4201:117:44","statements":[{"nativeSrc":"4216:15:44","nodeType":"YulVariableDeclaration","src":"4216:15:44","value":{"kind":"number","nativeSrc":"4230:1:44","nodeType":"YulLiteral","src":"4230:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4220:6:44","nodeType":"YulTypedName","src":"4220:6:44","type":""}]},{"nativeSrc":"4245:63:44","nodeType":"YulAssignment","src":"4245:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4280:9:44","nodeType":"YulIdentifier","src":"4280:9:44"},{"name":"offset","nativeSrc":"4291:6:44","nodeType":"YulIdentifier","src":"4291:6:44"}],"functionName":{"name":"add","nativeSrc":"4276:3:44","nodeType":"YulIdentifier","src":"4276:3:44"},"nativeSrc":"4276:22:44","nodeType":"YulFunctionCall","src":"4276:22:44"},{"name":"dataEnd","nativeSrc":"4300:7:44","nodeType":"YulIdentifier","src":"4300:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4255:20:44","nodeType":"YulIdentifier","src":"4255:20:44"},"nativeSrc":"4255:53:44","nodeType":"YulFunctionCall","src":"4255:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4245:6:44","nodeType":"YulIdentifier","src":"4245:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3996:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4032:9:44","nodeType":"YulTypedName","src":"4032:9:44","type":""},{"name":"dataEnd","nativeSrc":"4043:7:44","nodeType":"YulTypedName","src":"4043:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4055:6:44","nodeType":"YulTypedName","src":"4055:6:44","type":""}],"src":"3996:329:44"},{"body":{"nativeSrc":"4373:78:44","nodeType":"YulBlock","src":"4373:78:44","statements":[{"body":{"nativeSrc":"4429:16:44","nodeType":"YulBlock","src":"4429:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4438:1:44","nodeType":"YulLiteral","src":"4438:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"4441:1:44","nodeType":"YulLiteral","src":"4441:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4431:6:44","nodeType":"YulIdentifier","src":"4431:6:44"},"nativeSrc":"4431:12:44","nodeType":"YulFunctionCall","src":"4431:12:44"},"nativeSrc":"4431:12:44","nodeType":"YulExpressionStatement","src":"4431:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4396:5:44","nodeType":"YulIdentifier","src":"4396:5:44"},{"arguments":[{"name":"value","nativeSrc":"4420:5:44","nodeType":"YulIdentifier","src":"4420:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"4403:16:44","nodeType":"YulIdentifier","src":"4403:16:44"},"nativeSrc":"4403:23:44","nodeType":"YulFunctionCall","src":"4403:23:44"}],"functionName":{"name":"eq","nativeSrc":"4393:2:44","nodeType":"YulIdentifier","src":"4393:2:44"},"nativeSrc":"4393:34:44","nodeType":"YulFunctionCall","src":"4393:34:44"}],"functionName":{"name":"iszero","nativeSrc":"4386:6:44","nodeType":"YulIdentifier","src":"4386:6:44"},"nativeSrc":"4386:42:44","nodeType":"YulFunctionCall","src":"4386:42:44"},"nativeSrc":"4383:62:44","nodeType":"YulIf","src":"4383:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"4331:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4366:5:44","nodeType":"YulTypedName","src":"4366:5:44","type":""}],"src":"4331:120:44"},{"body":{"nativeSrc":"4508:86:44","nodeType":"YulBlock","src":"4508:86:44","statements":[{"nativeSrc":"4518:29:44","nodeType":"YulAssignment","src":"4518:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"4540:6:44","nodeType":"YulIdentifier","src":"4540:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"4527:12:44","nodeType":"YulIdentifier","src":"4527:12:44"},"nativeSrc":"4527:20:44","nodeType":"YulFunctionCall","src":"4527:20:44"},"variableNames":[{"name":"value","nativeSrc":"4518:5:44","nodeType":"YulIdentifier","src":"4518:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4582:5:44","nodeType":"YulIdentifier","src":"4582:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"4556:25:44","nodeType":"YulIdentifier","src":"4556:25:44"},"nativeSrc":"4556:32:44","nodeType":"YulFunctionCall","src":"4556:32:44"},"nativeSrc":"4556:32:44","nodeType":"YulExpressionStatement","src":"4556:32:44"}]},"name":"abi_decode_t_uint48","nativeSrc":"4457:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4486:6:44","nodeType":"YulTypedName","src":"4486:6:44","type":""},{"name":"end","nativeSrc":"4494:3:44","nodeType":"YulTypedName","src":"4494:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4502:5:44","nodeType":"YulTypedName","src":"4502:5:44","type":""}],"src":"4457:137:44"},{"body":{"nativeSrc":"4665:262:44","nodeType":"YulBlock","src":"4665:262:44","statements":[{"body":{"nativeSrc":"4711:83:44","nodeType":"YulBlock","src":"4711:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4713:77:44","nodeType":"YulIdentifier","src":"4713:77:44"},"nativeSrc":"4713:79:44","nodeType":"YulFunctionCall","src":"4713:79:44"},"nativeSrc":"4713:79:44","nodeType":"YulExpressionStatement","src":"4713:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4686:7:44","nodeType":"YulIdentifier","src":"4686:7:44"},{"name":"headStart","nativeSrc":"4695:9:44","nodeType":"YulIdentifier","src":"4695:9:44"}],"functionName":{"name":"sub","nativeSrc":"4682:3:44","nodeType":"YulIdentifier","src":"4682:3:44"},"nativeSrc":"4682:23:44","nodeType":"YulFunctionCall","src":"4682:23:44"},{"kind":"number","nativeSrc":"4707:2:44","nodeType":"YulLiteral","src":"4707:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4678:3:44","nodeType":"YulIdentifier","src":"4678:3:44"},"nativeSrc":"4678:32:44","nodeType":"YulFunctionCall","src":"4678:32:44"},"nativeSrc":"4675:119:44","nodeType":"YulIf","src":"4675:119:44"},{"nativeSrc":"4804:116:44","nodeType":"YulBlock","src":"4804:116:44","statements":[{"nativeSrc":"4819:15:44","nodeType":"YulVariableDeclaration","src":"4819:15:44","value":{"kind":"number","nativeSrc":"4833:1:44","nodeType":"YulLiteral","src":"4833:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4823:6:44","nodeType":"YulTypedName","src":"4823:6:44","type":""}]},{"nativeSrc":"4848:62:44","nodeType":"YulAssignment","src":"4848:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4882:9:44","nodeType":"YulIdentifier","src":"4882:9:44"},{"name":"offset","nativeSrc":"4893:6:44","nodeType":"YulIdentifier","src":"4893:6:44"}],"functionName":{"name":"add","nativeSrc":"4878:3:44","nodeType":"YulIdentifier","src":"4878:3:44"},"nativeSrc":"4878:22:44","nodeType":"YulFunctionCall","src":"4878:22:44"},{"name":"dataEnd","nativeSrc":"4902:7:44","nodeType":"YulIdentifier","src":"4902:7:44"}],"functionName":{"name":"abi_decode_t_uint48","nativeSrc":"4858:19:44","nodeType":"YulIdentifier","src":"4858:19:44"},"nativeSrc":"4858:52:44","nodeType":"YulFunctionCall","src":"4858:52:44"},"variableNames":[{"name":"value0","nativeSrc":"4848:6:44","nodeType":"YulIdentifier","src":"4848:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint48","nativeSrc":"4600:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4635:9:44","nodeType":"YulTypedName","src":"4635:9:44","type":""},{"name":"dataEnd","nativeSrc":"4646:7:44","nodeType":"YulTypedName","src":"4646:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4658:6:44","nodeType":"YulTypedName","src":"4658:6:44","type":""}],"src":"4600:327:44"},{"body":{"nativeSrc":"4965:28:44","nodeType":"YulBlock","src":"4965:28:44","statements":[{"nativeSrc":"4975:12:44","nodeType":"YulAssignment","src":"4975:12:44","value":{"name":"value","nativeSrc":"4982:5:44","nodeType":"YulIdentifier","src":"4982:5:44"},"variableNames":[{"name":"ret","nativeSrc":"4975:3:44","nodeType":"YulIdentifier","src":"4975:3:44"}]}]},"name":"identity","nativeSrc":"4933:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4951:5:44","nodeType":"YulTypedName","src":"4951:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4961:3:44","nodeType":"YulTypedName","src":"4961:3:44","type":""}],"src":"4933:60:44"},{"body":{"nativeSrc":"5059:82:44","nodeType":"YulBlock","src":"5059:82:44","statements":[{"nativeSrc":"5069:66:44","nodeType":"YulAssignment","src":"5069:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5127:5:44","nodeType":"YulIdentifier","src":"5127:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5109:17:44","nodeType":"YulIdentifier","src":"5109:17:44"},"nativeSrc":"5109:24:44","nodeType":"YulFunctionCall","src":"5109:24:44"}],"functionName":{"name":"identity","nativeSrc":"5100:8:44","nodeType":"YulIdentifier","src":"5100:8:44"},"nativeSrc":"5100:34:44","nodeType":"YulFunctionCall","src":"5100:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5082:17:44","nodeType":"YulIdentifier","src":"5082:17:44"},"nativeSrc":"5082:53:44","nodeType":"YulFunctionCall","src":"5082:53:44"},"variableNames":[{"name":"converted","nativeSrc":"5069:9:44","nodeType":"YulIdentifier","src":"5069:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4999:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5039:5:44","nodeType":"YulTypedName","src":"5039:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5049:9:44","nodeType":"YulTypedName","src":"5049:9:44","type":""}],"src":"4999:142:44"},{"body":{"nativeSrc":"5207:66:44","nodeType":"YulBlock","src":"5207:66:44","statements":[{"nativeSrc":"5217:50:44","nodeType":"YulAssignment","src":"5217:50:44","value":{"arguments":[{"name":"value","nativeSrc":"5261:5:44","nodeType":"YulIdentifier","src":"5261:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5230:30:44","nodeType":"YulIdentifier","src":"5230:30:44"},"nativeSrc":"5230:37:44","nodeType":"YulFunctionCall","src":"5230:37:44"},"variableNames":[{"name":"converted","nativeSrc":"5217:9:44","nodeType":"YulIdentifier","src":"5217:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"5147:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5187:5:44","nodeType":"YulTypedName","src":"5187:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5197:9:44","nodeType":"YulTypedName","src":"5197:9:44","type":""}],"src":"5147:126:44"},{"body":{"nativeSrc":"5360:66:44","nodeType":"YulBlock","src":"5360:66:44","statements":[{"nativeSrc":"5370:50:44","nodeType":"YulAssignment","src":"5370:50:44","value":{"arguments":[{"name":"value","nativeSrc":"5414:5:44","nodeType":"YulIdentifier","src":"5414:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5383:30:44","nodeType":"YulIdentifier","src":"5383:30:44"},"nativeSrc":"5383:37:44","nodeType":"YulFunctionCall","src":"5383:37:44"},"variableNames":[{"name":"converted","nativeSrc":"5370:9:44","nodeType":"YulIdentifier","src":"5370:9:44"}]}]},"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"5279:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5340:5:44","nodeType":"YulTypedName","src":"5340:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5350:9:44","nodeType":"YulTypedName","src":"5350:9:44","type":""}],"src":"5279:147:44"},{"body":{"nativeSrc":"5518:87:44","nodeType":"YulBlock","src":"5518:87:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5535:3:44","nodeType":"YulIdentifier","src":"5535:3:44"},{"arguments":[{"name":"value","nativeSrc":"5592:5:44","nodeType":"YulIdentifier","src":"5592:5:44"}],"functionName":{"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"5540:51:44","nodeType":"YulIdentifier","src":"5540:51:44"},"nativeSrc":"5540:58:44","nodeType":"YulFunctionCall","src":"5540:58:44"}],"functionName":{"name":"mstore","nativeSrc":"5528:6:44","nodeType":"YulIdentifier","src":"5528:6:44"},"nativeSrc":"5528:71:44","nodeType":"YulFunctionCall","src":"5528:71:44"},"nativeSrc":"5528:71:44","nodeType":"YulExpressionStatement","src":"5528:71:44"}]},"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"5432:173:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5506:5:44","nodeType":"YulTypedName","src":"5506:5:44","type":""},{"name":"pos","nativeSrc":"5513:3:44","nodeType":"YulTypedName","src":"5513:3:44","type":""}],"src":"5432:173:44"},{"body":{"nativeSrc":"5730:145:44","nodeType":"YulBlock","src":"5730:145:44","statements":[{"nativeSrc":"5740:26:44","nodeType":"YulAssignment","src":"5740:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"5752:9:44","nodeType":"YulIdentifier","src":"5752:9:44"},{"kind":"number","nativeSrc":"5763:2:44","nodeType":"YulLiteral","src":"5763:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5748:3:44","nodeType":"YulIdentifier","src":"5748:3:44"},"nativeSrc":"5748:18:44","nodeType":"YulFunctionCall","src":"5748:18:44"},"variableNames":[{"name":"tail","nativeSrc":"5740:4:44","nodeType":"YulIdentifier","src":"5740:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5841:6:44","nodeType":"YulIdentifier","src":"5841:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5854:9:44","nodeType":"YulIdentifier","src":"5854:9:44"},{"kind":"number","nativeSrc":"5865:1:44","nodeType":"YulLiteral","src":"5865:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5850:3:44","nodeType":"YulIdentifier","src":"5850:3:44"},"nativeSrc":"5850:17:44","nodeType":"YulFunctionCall","src":"5850:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"5776:64:44","nodeType":"YulIdentifier","src":"5776:64:44"},"nativeSrc":"5776:92:44","nodeType":"YulFunctionCall","src":"5776:92:44"},"nativeSrc":"5776:92:44","nodeType":"YulExpressionStatement","src":"5776:92:44"}]},"name":"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed","nativeSrc":"5611:264:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5702:9:44","nodeType":"YulTypedName","src":"5702:9:44","type":""},{"name":"value0","nativeSrc":"5714:6:44","nodeType":"YulTypedName","src":"5714:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5725:4:44","nodeType":"YulTypedName","src":"5725:4:44","type":""}],"src":"5611:264:44"},{"body":{"nativeSrc":"5946:53:44","nodeType":"YulBlock","src":"5946:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5963:3:44","nodeType":"YulIdentifier","src":"5963:3:44"},{"arguments":[{"name":"value","nativeSrc":"5986:5:44","nodeType":"YulIdentifier","src":"5986:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5968:17:44","nodeType":"YulIdentifier","src":"5968:17:44"},"nativeSrc":"5968:24:44","nodeType":"YulFunctionCall","src":"5968:24:44"}],"functionName":{"name":"mstore","nativeSrc":"5956:6:44","nodeType":"YulIdentifier","src":"5956:6:44"},"nativeSrc":"5956:37:44","nodeType":"YulFunctionCall","src":"5956:37:44"},"nativeSrc":"5956:37:44","nodeType":"YulExpressionStatement","src":"5956:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5881:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5934:5:44","nodeType":"YulTypedName","src":"5934:5:44","type":""},{"name":"pos","nativeSrc":"5941:3:44","nodeType":"YulTypedName","src":"5941:3:44","type":""}],"src":"5881:118:44"},{"body":{"nativeSrc":"6103:124:44","nodeType":"YulBlock","src":"6103:124:44","statements":[{"nativeSrc":"6113:26:44","nodeType":"YulAssignment","src":"6113:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6125:9:44","nodeType":"YulIdentifier","src":"6125:9:44"},{"kind":"number","nativeSrc":"6136:2:44","nodeType":"YulLiteral","src":"6136:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6121:3:44","nodeType":"YulIdentifier","src":"6121:3:44"},"nativeSrc":"6121:18:44","nodeType":"YulFunctionCall","src":"6121:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6113:4:44","nodeType":"YulIdentifier","src":"6113:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6193:6:44","nodeType":"YulIdentifier","src":"6193:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6206:9:44","nodeType":"YulIdentifier","src":"6206:9:44"},{"kind":"number","nativeSrc":"6217:1:44","nodeType":"YulLiteral","src":"6217:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6202:3:44","nodeType":"YulIdentifier","src":"6202:3:44"},"nativeSrc":"6202:17:44","nodeType":"YulFunctionCall","src":"6202:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6149:43:44","nodeType":"YulIdentifier","src":"6149:43:44"},"nativeSrc":"6149:71:44","nodeType":"YulFunctionCall","src":"6149:71:44"},"nativeSrc":"6149:71:44","nodeType":"YulExpressionStatement","src":"6149:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6005:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6075:9:44","nodeType":"YulTypedName","src":"6075:9:44","type":""},{"name":"value0","nativeSrc":"6087:6:44","nodeType":"YulTypedName","src":"6087:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6098:4:44","nodeType":"YulTypedName","src":"6098:4:44","type":""}],"src":"6005:222:44"},{"body":{"nativeSrc":"6355:202:44","nodeType":"YulBlock","src":"6355:202:44","statements":[{"nativeSrc":"6365:26:44","nodeType":"YulAssignment","src":"6365:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6377:9:44","nodeType":"YulIdentifier","src":"6377:9:44"},{"kind":"number","nativeSrc":"6388:2:44","nodeType":"YulLiteral","src":"6388:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6373:3:44","nodeType":"YulIdentifier","src":"6373:3:44"},"nativeSrc":"6373:18:44","nodeType":"YulFunctionCall","src":"6373:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6365:4:44","nodeType":"YulIdentifier","src":"6365:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6443:6:44","nodeType":"YulIdentifier","src":"6443:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6456:9:44","nodeType":"YulIdentifier","src":"6456:9:44"},{"kind":"number","nativeSrc":"6467:1:44","nodeType":"YulLiteral","src":"6467:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6452:3:44","nodeType":"YulIdentifier","src":"6452:3:44"},"nativeSrc":"6452:17:44","nodeType":"YulFunctionCall","src":"6452:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"6401:41:44","nodeType":"YulIdentifier","src":"6401:41:44"},"nativeSrc":"6401:69:44","nodeType":"YulFunctionCall","src":"6401:69:44"},"nativeSrc":"6401:69:44","nodeType":"YulExpressionStatement","src":"6401:69:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"6522:6:44","nodeType":"YulIdentifier","src":"6522:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6535:9:44","nodeType":"YulIdentifier","src":"6535:9:44"},{"kind":"number","nativeSrc":"6546:2:44","nodeType":"YulLiteral","src":"6546:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6531:3:44","nodeType":"YulIdentifier","src":"6531:3:44"},"nativeSrc":"6531:18:44","nodeType":"YulFunctionCall","src":"6531:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"6480:41:44","nodeType":"YulIdentifier","src":"6480:41:44"},"nativeSrc":"6480:70:44","nodeType":"YulFunctionCall","src":"6480:70:44"},"nativeSrc":"6480:70:44","nodeType":"YulExpressionStatement","src":"6480:70:44"}]},"name":"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed","nativeSrc":"6233:324:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6319:9:44","nodeType":"YulTypedName","src":"6319:9:44","type":""},{"name":"value1","nativeSrc":"6331:6:44","nodeType":"YulTypedName","src":"6331:6:44","type":""},{"name":"value0","nativeSrc":"6339:6:44","nodeType":"YulTypedName","src":"6339:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6350:4:44","nodeType":"YulTypedName","src":"6350:4:44","type":""}],"src":"6233:324:44"},{"body":{"nativeSrc":"6646:391:44","nodeType":"YulBlock","src":"6646:391:44","statements":[{"body":{"nativeSrc":"6692:83:44","nodeType":"YulBlock","src":"6692:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6694:77:44","nodeType":"YulIdentifier","src":"6694:77:44"},"nativeSrc":"6694:79:44","nodeType":"YulFunctionCall","src":"6694:79:44"},"nativeSrc":"6694:79:44","nodeType":"YulExpressionStatement","src":"6694:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6667:7:44","nodeType":"YulIdentifier","src":"6667:7:44"},{"name":"headStart","nativeSrc":"6676:9:44","nodeType":"YulIdentifier","src":"6676:9:44"}],"functionName":{"name":"sub","nativeSrc":"6663:3:44","nodeType":"YulIdentifier","src":"6663:3:44"},"nativeSrc":"6663:23:44","nodeType":"YulFunctionCall","src":"6663:23:44"},{"kind":"number","nativeSrc":"6688:2:44","nodeType":"YulLiteral","src":"6688:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6659:3:44","nodeType":"YulIdentifier","src":"6659:3:44"},"nativeSrc":"6659:32:44","nodeType":"YulFunctionCall","src":"6659:32:44"},"nativeSrc":"6656:119:44","nodeType":"YulIf","src":"6656:119:44"},{"nativeSrc":"6785:117:44","nodeType":"YulBlock","src":"6785:117:44","statements":[{"nativeSrc":"6800:15:44","nodeType":"YulVariableDeclaration","src":"6800:15:44","value":{"kind":"number","nativeSrc":"6814:1:44","nodeType":"YulLiteral","src":"6814:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6804:6:44","nodeType":"YulTypedName","src":"6804:6:44","type":""}]},{"nativeSrc":"6829:63:44","nodeType":"YulAssignment","src":"6829:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6864:9:44","nodeType":"YulIdentifier","src":"6864:9:44"},{"name":"offset","nativeSrc":"6875:6:44","nodeType":"YulIdentifier","src":"6875:6:44"}],"functionName":{"name":"add","nativeSrc":"6860:3:44","nodeType":"YulIdentifier","src":"6860:3:44"},"nativeSrc":"6860:22:44","nodeType":"YulFunctionCall","src":"6860:22:44"},{"name":"dataEnd","nativeSrc":"6884:7:44","nodeType":"YulIdentifier","src":"6884:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6839:20:44","nodeType":"YulIdentifier","src":"6839:20:44"},"nativeSrc":"6839:53:44","nodeType":"YulFunctionCall","src":"6839:53:44"},"variableNames":[{"name":"value0","nativeSrc":"6829:6:44","nodeType":"YulIdentifier","src":"6829:6:44"}]}]},{"nativeSrc":"6912:118:44","nodeType":"YulBlock","src":"6912:118:44","statements":[{"nativeSrc":"6927:16:44","nodeType":"YulVariableDeclaration","src":"6927:16:44","value":{"kind":"number","nativeSrc":"6941:2:44","nodeType":"YulLiteral","src":"6941:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6931:6:44","nodeType":"YulTypedName","src":"6931:6:44","type":""}]},{"nativeSrc":"6957:63:44","nodeType":"YulAssignment","src":"6957:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6992:9:44","nodeType":"YulIdentifier","src":"6992:9:44"},{"name":"offset","nativeSrc":"7003:6:44","nodeType":"YulIdentifier","src":"7003:6:44"}],"functionName":{"name":"add","nativeSrc":"6988:3:44","nodeType":"YulIdentifier","src":"6988:3:44"},"nativeSrc":"6988:22:44","nodeType":"YulFunctionCall","src":"6988:22:44"},{"name":"dataEnd","nativeSrc":"7012:7:44","nodeType":"YulIdentifier","src":"7012:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"6967:20:44","nodeType":"YulIdentifier","src":"6967:20:44"},"nativeSrc":"6967:53:44","nodeType":"YulFunctionCall","src":"6967:53:44"},"variableNames":[{"name":"value1","nativeSrc":"6957:6:44","nodeType":"YulIdentifier","src":"6957:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"6563:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6608:9:44","nodeType":"YulTypedName","src":"6608:9:44","type":""},{"name":"dataEnd","nativeSrc":"6619:7:44","nodeType":"YulTypedName","src":"6619:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6631:6:44","nodeType":"YulTypedName","src":"6631:6:44","type":""},{"name":"value1","nativeSrc":"6639:6:44","nodeType":"YulTypedName","src":"6639:6:44","type":""}],"src":"6563:474:44"},{"body":{"nativeSrc":"7167:204:44","nodeType":"YulBlock","src":"7167:204:44","statements":[{"nativeSrc":"7177:26:44","nodeType":"YulAssignment","src":"7177:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7189:9:44","nodeType":"YulIdentifier","src":"7189:9:44"},{"kind":"number","nativeSrc":"7200:2:44","nodeType":"YulLiteral","src":"7200:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7185:3:44","nodeType":"YulIdentifier","src":"7185:3:44"},"nativeSrc":"7185:18:44","nodeType":"YulFunctionCall","src":"7185:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7177:4:44","nodeType":"YulIdentifier","src":"7177:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7257:6:44","nodeType":"YulIdentifier","src":"7257:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7270:9:44","nodeType":"YulIdentifier","src":"7270:9:44"},{"kind":"number","nativeSrc":"7281:1:44","nodeType":"YulLiteral","src":"7281:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7266:3:44","nodeType":"YulIdentifier","src":"7266:3:44"},"nativeSrc":"7266:17:44","nodeType":"YulFunctionCall","src":"7266:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7213:43:44","nodeType":"YulIdentifier","src":"7213:43:44"},"nativeSrc":"7213:71:44","nodeType":"YulFunctionCall","src":"7213:71:44"},"nativeSrc":"7213:71:44","nodeType":"YulExpressionStatement","src":"7213:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7336:6:44","nodeType":"YulIdentifier","src":"7336:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7349:9:44","nodeType":"YulIdentifier","src":"7349:9:44"},{"kind":"number","nativeSrc":"7360:2:44","nodeType":"YulLiteral","src":"7360:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7345:3:44","nodeType":"YulIdentifier","src":"7345:3:44"},"nativeSrc":"7345:18:44","nodeType":"YulFunctionCall","src":"7345:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7294:41:44","nodeType":"YulIdentifier","src":"7294:41:44"},"nativeSrc":"7294:70:44","nodeType":"YulFunctionCall","src":"7294:70:44"},"nativeSrc":"7294:70:44","nodeType":"YulExpressionStatement","src":"7294:70:44"}]},"name":"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed","nativeSrc":"7043:328:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7131:9:44","nodeType":"YulTypedName","src":"7131:9:44","type":""},{"name":"value1","nativeSrc":"7143:6:44","nodeType":"YulTypedName","src":"7143:6:44","type":""},{"name":"value0","nativeSrc":"7151:6:44","nodeType":"YulTypedName","src":"7151:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7162:4:44","nodeType":"YulTypedName","src":"7162:4:44","type":""}],"src":"7043:328:44"},{"body":{"nativeSrc":"7440:51:44","nodeType":"YulBlock","src":"7440:51:44","statements":[{"nativeSrc":"7450:35:44","nodeType":"YulAssignment","src":"7450:35:44","value":{"arguments":[{"name":"value","nativeSrc":"7479:5:44","nodeType":"YulIdentifier","src":"7479:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7461:17:44","nodeType":"YulIdentifier","src":"7461:17:44"},"nativeSrc":"7461:24:44","nodeType":"YulFunctionCall","src":"7461:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"7450:7:44","nodeType":"YulIdentifier","src":"7450:7:44"}]}]},"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"7377:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7422:5:44","nodeType":"YulTypedName","src":"7422:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7432:7:44","nodeType":"YulTypedName","src":"7432:7:44","type":""}],"src":"7377:114:44"},{"body":{"nativeSrc":"7558:97:44","nodeType":"YulBlock","src":"7558:97:44","statements":[{"body":{"nativeSrc":"7633:16:44","nodeType":"YulBlock","src":"7633:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7642:1:44","nodeType":"YulLiteral","src":"7642:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"7645:1:44","nodeType":"YulLiteral","src":"7645:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7635:6:44","nodeType":"YulIdentifier","src":"7635:6:44"},"nativeSrc":"7635:12:44","nodeType":"YulFunctionCall","src":"7635:12:44"},"nativeSrc":"7635:12:44","nodeType":"YulExpressionStatement","src":"7635:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7581:5:44","nodeType":"YulIdentifier","src":"7581:5:44"},{"arguments":[{"name":"value","nativeSrc":"7624:5:44","nodeType":"YulIdentifier","src":"7624:5:44"}],"functionName":{"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"7588:35:44","nodeType":"YulIdentifier","src":"7588:35:44"},"nativeSrc":"7588:42:44","nodeType":"YulFunctionCall","src":"7588:42:44"}],"functionName":{"name":"eq","nativeSrc":"7578:2:44","nodeType":"YulIdentifier","src":"7578:2:44"},"nativeSrc":"7578:53:44","nodeType":"YulFunctionCall","src":"7578:53:44"}],"functionName":{"name":"iszero","nativeSrc":"7571:6:44","nodeType":"YulIdentifier","src":"7571:6:44"},"nativeSrc":"7571:61:44","nodeType":"YulFunctionCall","src":"7571:61:44"},"nativeSrc":"7568:81:44","nodeType":"YulIf","src":"7568:81:44"}]},"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"7497:158:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7551:5:44","nodeType":"YulTypedName","src":"7551:5:44","type":""}],"src":"7497:158:44"},{"body":{"nativeSrc":"7731:105:44","nodeType":"YulBlock","src":"7731:105:44","statements":[{"nativeSrc":"7741:29:44","nodeType":"YulAssignment","src":"7741:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"7763:6:44","nodeType":"YulIdentifier","src":"7763:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"7750:12:44","nodeType":"YulIdentifier","src":"7750:12:44"},"nativeSrc":"7750:20:44","nodeType":"YulFunctionCall","src":"7750:20:44"},"variableNames":[{"name":"value","nativeSrc":"7741:5:44","nodeType":"YulIdentifier","src":"7741:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7824:5:44","nodeType":"YulIdentifier","src":"7824:5:44"}],"functionName":{"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"7779:44:44","nodeType":"YulIdentifier","src":"7779:44:44"},"nativeSrc":"7779:51:44","nodeType":"YulFunctionCall","src":"7779:51:44"},"nativeSrc":"7779:51:44","nodeType":"YulExpressionStatement","src":"7779:51:44"}]},"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"7661:175:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7709:6:44","nodeType":"YulTypedName","src":"7709:6:44","type":""},{"name":"end","nativeSrc":"7717:3:44","nodeType":"YulTypedName","src":"7717:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7725:5:44","nodeType":"YulTypedName","src":"7725:5:44","type":""}],"src":"7661:175:44"},{"body":{"nativeSrc":"7960:537:44","nodeType":"YulBlock","src":"7960:537:44","statements":[{"body":{"nativeSrc":"8006:83:44","nodeType":"YulBlock","src":"8006:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8008:77:44","nodeType":"YulIdentifier","src":"8008:77:44"},"nativeSrc":"8008:79:44","nodeType":"YulFunctionCall","src":"8008:79:44"},"nativeSrc":"8008:79:44","nodeType":"YulExpressionStatement","src":"8008:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7981:7:44","nodeType":"YulIdentifier","src":"7981:7:44"},{"name":"headStart","nativeSrc":"7990:9:44","nodeType":"YulIdentifier","src":"7990:9:44"}],"functionName":{"name":"sub","nativeSrc":"7977:3:44","nodeType":"YulIdentifier","src":"7977:3:44"},"nativeSrc":"7977:23:44","nodeType":"YulFunctionCall","src":"7977:23:44"},{"kind":"number","nativeSrc":"8002:2:44","nodeType":"YulLiteral","src":"8002:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7973:3:44","nodeType":"YulIdentifier","src":"7973:3:44"},"nativeSrc":"7973:32:44","nodeType":"YulFunctionCall","src":"7973:32:44"},"nativeSrc":"7970:119:44","nodeType":"YulIf","src":"7970:119:44"},{"nativeSrc":"8099:117:44","nodeType":"YulBlock","src":"8099:117:44","statements":[{"nativeSrc":"8114:15:44","nodeType":"YulVariableDeclaration","src":"8114:15:44","value":{"kind":"number","nativeSrc":"8128:1:44","nodeType":"YulLiteral","src":"8128:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8118:6:44","nodeType":"YulTypedName","src":"8118:6:44","type":""}]},{"nativeSrc":"8143:63:44","nodeType":"YulAssignment","src":"8143:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8178:9:44","nodeType":"YulIdentifier","src":"8178:9:44"},{"name":"offset","nativeSrc":"8189:6:44","nodeType":"YulIdentifier","src":"8189:6:44"}],"functionName":{"name":"add","nativeSrc":"8174:3:44","nodeType":"YulIdentifier","src":"8174:3:44"},"nativeSrc":"8174:22:44","nodeType":"YulFunctionCall","src":"8174:22:44"},{"name":"dataEnd","nativeSrc":"8198:7:44","nodeType":"YulIdentifier","src":"8198:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8153:20:44","nodeType":"YulIdentifier","src":"8153:20:44"},"nativeSrc":"8153:53:44","nodeType":"YulFunctionCall","src":"8153:53:44"},"variableNames":[{"name":"value0","nativeSrc":"8143:6:44","nodeType":"YulIdentifier","src":"8143:6:44"}]}]},{"nativeSrc":"8226:118:44","nodeType":"YulBlock","src":"8226:118:44","statements":[{"nativeSrc":"8241:16:44","nodeType":"YulVariableDeclaration","src":"8241:16:44","value":{"kind":"number","nativeSrc":"8255:2:44","nodeType":"YulLiteral","src":"8255:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8245:6:44","nodeType":"YulTypedName","src":"8245:6:44","type":""}]},{"nativeSrc":"8271:63:44","nodeType":"YulAssignment","src":"8271:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8306:9:44","nodeType":"YulIdentifier","src":"8306:9:44"},{"name":"offset","nativeSrc":"8317:6:44","nodeType":"YulIdentifier","src":"8317:6:44"}],"functionName":{"name":"add","nativeSrc":"8302:3:44","nodeType":"YulIdentifier","src":"8302:3:44"},"nativeSrc":"8302:22:44","nodeType":"YulFunctionCall","src":"8302:22:44"},{"name":"dataEnd","nativeSrc":"8326:7:44","nodeType":"YulIdentifier","src":"8326:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"8281:20:44","nodeType":"YulIdentifier","src":"8281:20:44"},"nativeSrc":"8281:53:44","nodeType":"YulFunctionCall","src":"8281:53:44"},"variableNames":[{"name":"value1","nativeSrc":"8271:6:44","nodeType":"YulIdentifier","src":"8271:6:44"}]}]},{"nativeSrc":"8354:136:44","nodeType":"YulBlock","src":"8354:136:44","statements":[{"nativeSrc":"8369:16:44","nodeType":"YulVariableDeclaration","src":"8369:16:44","value":{"kind":"number","nativeSrc":"8383:2:44","nodeType":"YulLiteral","src":"8383:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8373:6:44","nodeType":"YulTypedName","src":"8373:6:44","type":""}]},{"nativeSrc":"8399:81:44","nodeType":"YulAssignment","src":"8399:81:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8452:9:44","nodeType":"YulIdentifier","src":"8452:9:44"},{"name":"offset","nativeSrc":"8463:6:44","nodeType":"YulIdentifier","src":"8463:6:44"}],"functionName":{"name":"add","nativeSrc":"8448:3:44","nodeType":"YulIdentifier","src":"8448:3:44"},"nativeSrc":"8448:22:44","nodeType":"YulFunctionCall","src":"8448:22:44"},{"name":"dataEnd","nativeSrc":"8472:7:44","nodeType":"YulIdentifier","src":"8472:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"8409:38:44","nodeType":"YulIdentifier","src":"8409:38:44"},"nativeSrc":"8409:71:44","nodeType":"YulFunctionCall","src":"8409:71:44"},"variableNames":[{"name":"value2","nativeSrc":"8399:6:44","nodeType":"YulIdentifier","src":"8399:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474","nativeSrc":"7842:655:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7914:9:44","nodeType":"YulTypedName","src":"7914:9:44","type":""},{"name":"dataEnd","nativeSrc":"7925:7:44","nodeType":"YulTypedName","src":"7925:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7937:6:44","nodeType":"YulTypedName","src":"7937:6:44","type":""},{"name":"value1","nativeSrc":"7945:6:44","nodeType":"YulTypedName","src":"7945:6:44","type":""},{"name":"value2","nativeSrc":"7953:6:44","nodeType":"YulTypedName","src":"7953:6:44","type":""}],"src":"7842:655:44"},{"body":{"nativeSrc":"8629:206:44","nodeType":"YulBlock","src":"8629:206:44","statements":[{"nativeSrc":"8639:26:44","nodeType":"YulAssignment","src":"8639:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8651:9:44","nodeType":"YulIdentifier","src":"8651:9:44"},{"kind":"number","nativeSrc":"8662:2:44","nodeType":"YulLiteral","src":"8662:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8647:3:44","nodeType":"YulIdentifier","src":"8647:3:44"},"nativeSrc":"8647:18:44","nodeType":"YulFunctionCall","src":"8647:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8639:4:44","nodeType":"YulIdentifier","src":"8639:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8719:6:44","nodeType":"YulIdentifier","src":"8719:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8732:9:44","nodeType":"YulIdentifier","src":"8732:9:44"},{"kind":"number","nativeSrc":"8743:1:44","nodeType":"YulLiteral","src":"8743:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8728:3:44","nodeType":"YulIdentifier","src":"8728:3:44"},"nativeSrc":"8728:17:44","nodeType":"YulFunctionCall","src":"8728:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8675:43:44","nodeType":"YulIdentifier","src":"8675:43:44"},"nativeSrc":"8675:71:44","nodeType":"YulFunctionCall","src":"8675:71:44"},"nativeSrc":"8675:71:44","nodeType":"YulExpressionStatement","src":"8675:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"8800:6:44","nodeType":"YulIdentifier","src":"8800:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8813:9:44","nodeType":"YulIdentifier","src":"8813:9:44"},{"kind":"number","nativeSrc":"8824:2:44","nodeType":"YulLiteral","src":"8824:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8809:3:44","nodeType":"YulIdentifier","src":"8809:3:44"},"nativeSrc":"8809:18:44","nodeType":"YulFunctionCall","src":"8809:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8756:43:44","nodeType":"YulIdentifier","src":"8756:43:44"},"nativeSrc":"8756:72:44","nodeType":"YulFunctionCall","src":"8756:72:44"},"nativeSrc":"8756:72:44","nodeType":"YulExpressionStatement","src":"8756:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"8503:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8593:9:44","nodeType":"YulTypedName","src":"8593:9:44","type":""},{"name":"value1","nativeSrc":"8605:6:44","nodeType":"YulTypedName","src":"8605:6:44","type":""},{"name":"value0","nativeSrc":"8613:6:44","nodeType":"YulTypedName","src":"8613:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8624:4:44","nodeType":"YulTypedName","src":"8624:4:44","type":""}],"src":"8503:332:44"},{"body":{"nativeSrc":"8919:66:44","nodeType":"YulBlock","src":"8919:66:44","statements":[{"nativeSrc":"8929:50:44","nodeType":"YulAssignment","src":"8929:50:44","value":{"arguments":[{"name":"value","nativeSrc":"8973:5:44","nodeType":"YulIdentifier","src":"8973:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"8942:30:44","nodeType":"YulIdentifier","src":"8942:30:44"},"nativeSrc":"8942:37:44","nodeType":"YulFunctionCall","src":"8942:37:44"},"variableNames":[{"name":"converted","nativeSrc":"8929:9:44","nodeType":"YulIdentifier","src":"8929:9:44"}]}]},"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"8841:144:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8899:5:44","nodeType":"YulTypedName","src":"8899:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"8909:9:44","nodeType":"YulTypedName","src":"8909:9:44","type":""}],"src":"8841:144:44"},{"body":{"nativeSrc":"9074:84:44","nodeType":"YulBlock","src":"9074:84:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9091:3:44","nodeType":"YulIdentifier","src":"9091:3:44"},{"arguments":[{"name":"value","nativeSrc":"9145:5:44","nodeType":"YulIdentifier","src":"9145:5:44"}],"functionName":{"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"9096:48:44","nodeType":"YulIdentifier","src":"9096:48:44"},"nativeSrc":"9096:55:44","nodeType":"YulFunctionCall","src":"9096:55:44"}],"functionName":{"name":"mstore","nativeSrc":"9084:6:44","nodeType":"YulIdentifier","src":"9084:6:44"},"nativeSrc":"9084:68:44","nodeType":"YulFunctionCall","src":"9084:68:44"},"nativeSrc":"9084:68:44","nodeType":"YulExpressionStatement","src":"9084:68:44"}]},"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"8991:167:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9062:5:44","nodeType":"YulTypedName","src":"9062:5:44","type":""},{"name":"pos","nativeSrc":"9069:3:44","nodeType":"YulTypedName","src":"9069:3:44","type":""}],"src":"8991:167:44"},{"body":{"nativeSrc":"9336:306:44","nodeType":"YulBlock","src":"9336:306:44","statements":[{"nativeSrc":"9346:26:44","nodeType":"YulAssignment","src":"9346:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"9358:9:44","nodeType":"YulIdentifier","src":"9358:9:44"},{"kind":"number","nativeSrc":"9369:2:44","nodeType":"YulLiteral","src":"9369:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9354:3:44","nodeType":"YulIdentifier","src":"9354:3:44"},"nativeSrc":"9354:18:44","nodeType":"YulFunctionCall","src":"9354:18:44"},"variableNames":[{"name":"tail","nativeSrc":"9346:4:44","nodeType":"YulIdentifier","src":"9346:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9426:6:44","nodeType":"YulIdentifier","src":"9426:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9439:9:44","nodeType":"YulIdentifier","src":"9439:9:44"},{"kind":"number","nativeSrc":"9450:1:44","nodeType":"YulLiteral","src":"9450:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9435:3:44","nodeType":"YulIdentifier","src":"9435:3:44"},"nativeSrc":"9435:17:44","nodeType":"YulFunctionCall","src":"9435:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9382:43:44","nodeType":"YulIdentifier","src":"9382:43:44"},"nativeSrc":"9382:71:44","nodeType":"YulFunctionCall","src":"9382:71:44"},"nativeSrc":"9382:71:44","nodeType":"YulExpressionStatement","src":"9382:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9507:6:44","nodeType":"YulIdentifier","src":"9507:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9520:9:44","nodeType":"YulIdentifier","src":"9520:9:44"},{"kind":"number","nativeSrc":"9531:2:44","nodeType":"YulLiteral","src":"9531:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9516:3:44","nodeType":"YulIdentifier","src":"9516:3:44"},"nativeSrc":"9516:18:44","nodeType":"YulFunctionCall","src":"9516:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"9463:43:44","nodeType":"YulIdentifier","src":"9463:43:44"},"nativeSrc":"9463:72:44","nodeType":"YulFunctionCall","src":"9463:72:44"},"nativeSrc":"9463:72:44","nodeType":"YulExpressionStatement","src":"9463:72:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"9607:6:44","nodeType":"YulIdentifier","src":"9607:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9620:9:44","nodeType":"YulIdentifier","src":"9620:9:44"},{"kind":"number","nativeSrc":"9631:2:44","nodeType":"YulLiteral","src":"9631:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9616:3:44","nodeType":"YulIdentifier","src":"9616:3:44"},"nativeSrc":"9616:18:44","nodeType":"YulFunctionCall","src":"9616:18:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"9545:61:44","nodeType":"YulIdentifier","src":"9545:61:44"},"nativeSrc":"9545:90:44","nodeType":"YulFunctionCall","src":"9545:90:44"},"nativeSrc":"9545:90:44","nodeType":"YulExpressionStatement","src":"9545:90:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed","nativeSrc":"9164:478:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9292:9:44","nodeType":"YulTypedName","src":"9292:9:44","type":""},{"name":"value2","nativeSrc":"9304:6:44","nodeType":"YulTypedName","src":"9304:6:44","type":""},{"name":"value1","nativeSrc":"9312:6:44","nodeType":"YulTypedName","src":"9312:6:44","type":""},{"name":"value0","nativeSrc":"9320:6:44","nodeType":"YulTypedName","src":"9320:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9331:4:44","nodeType":"YulTypedName","src":"9331:4:44","type":""}],"src":"9164:478:44"},{"body":{"nativeSrc":"9676:152:44","nodeType":"YulBlock","src":"9676:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9693:1:44","nodeType":"YulLiteral","src":"9693:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"9696:77:44","nodeType":"YulLiteral","src":"9696:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9686:6:44","nodeType":"YulIdentifier","src":"9686:6:44"},"nativeSrc":"9686:88:44","nodeType":"YulFunctionCall","src":"9686:88:44"},"nativeSrc":"9686:88:44","nodeType":"YulExpressionStatement","src":"9686:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9790:1:44","nodeType":"YulLiteral","src":"9790:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"9793:4:44","nodeType":"YulLiteral","src":"9793:4:44","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"9783:6:44","nodeType":"YulIdentifier","src":"9783:6:44"},"nativeSrc":"9783:15:44","nodeType":"YulFunctionCall","src":"9783:15:44"},"nativeSrc":"9783:15:44","nodeType":"YulExpressionStatement","src":"9783:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9814:1:44","nodeType":"YulLiteral","src":"9814:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"9817:4:44","nodeType":"YulLiteral","src":"9817:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9807:6:44","nodeType":"YulIdentifier","src":"9807:6:44"},"nativeSrc":"9807:15:44","nodeType":"YulFunctionCall","src":"9807:15:44"},"nativeSrc":"9807:15:44","nodeType":"YulExpressionStatement","src":"9807:15:44"}]},"name":"panic_error_0x11","nativeSrc":"9648:180:44","nodeType":"YulFunctionDefinition","src":"9648:180:44"},{"body":{"nativeSrc":"9877:158:44","nodeType":"YulBlock","src":"9877:158:44","statements":[{"nativeSrc":"9887:24:44","nodeType":"YulAssignment","src":"9887:24:44","value":{"arguments":[{"name":"x","nativeSrc":"9909:1:44","nodeType":"YulIdentifier","src":"9909:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"9892:16:44","nodeType":"YulIdentifier","src":"9892:16:44"},"nativeSrc":"9892:19:44","nodeType":"YulFunctionCall","src":"9892:19:44"},"variableNames":[{"name":"x","nativeSrc":"9887:1:44","nodeType":"YulIdentifier","src":"9887:1:44"}]},{"nativeSrc":"9920:24:44","nodeType":"YulAssignment","src":"9920:24:44","value":{"arguments":[{"name":"y","nativeSrc":"9942:1:44","nodeType":"YulIdentifier","src":"9942:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"9925:16:44","nodeType":"YulIdentifier","src":"9925:16:44"},"nativeSrc":"9925:19:44","nodeType":"YulFunctionCall","src":"9925:19:44"},"variableNames":[{"name":"y","nativeSrc":"9920:1:44","nodeType":"YulIdentifier","src":"9920:1:44"}]},{"nativeSrc":"9953:16:44","nodeType":"YulAssignment","src":"9953:16:44","value":{"arguments":[{"name":"x","nativeSrc":"9964:1:44","nodeType":"YulIdentifier","src":"9964:1:44"},{"name":"y","nativeSrc":"9967:1:44","nodeType":"YulIdentifier","src":"9967:1:44"}],"functionName":{"name":"add","nativeSrc":"9960:3:44","nodeType":"YulIdentifier","src":"9960:3:44"},"nativeSrc":"9960:9:44","nodeType":"YulFunctionCall","src":"9960:9:44"},"variableNames":[{"name":"sum","nativeSrc":"9953:3:44","nodeType":"YulIdentifier","src":"9953:3:44"}]},{"body":{"nativeSrc":"10006:22:44","nodeType":"YulBlock","src":"10006:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10008:16:44","nodeType":"YulIdentifier","src":"10008:16:44"},"nativeSrc":"10008:18:44","nodeType":"YulFunctionCall","src":"10008:18:44"},"nativeSrc":"10008:18:44","nodeType":"YulExpressionStatement","src":"10008:18:44"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"9985:3:44","nodeType":"YulIdentifier","src":"9985:3:44"},{"kind":"number","nativeSrc":"9990:14:44","nodeType":"YulLiteral","src":"9990:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9982:2:44","nodeType":"YulIdentifier","src":"9982:2:44"},"nativeSrc":"9982:23:44","nodeType":"YulFunctionCall","src":"9982:23:44"},"nativeSrc":"9979:49:44","nodeType":"YulIf","src":"9979:49:44"}]},"name":"checked_add_t_uint48","nativeSrc":"9834:201:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"9864:1:44","nodeType":"YulTypedName","src":"9864:1:44","type":""},{"name":"y","nativeSrc":"9867:1:44","nodeType":"YulTypedName","src":"9867:1:44","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"9873:3:44","nodeType":"YulTypedName","src":"9873:3:44","type":""}],"src":"9834:201:44"},{"body":{"nativeSrc":"10095:32:44","nodeType":"YulBlock","src":"10095:32:44","statements":[{"nativeSrc":"10105:16:44","nodeType":"YulAssignment","src":"10105:16:44","value":{"name":"value","nativeSrc":"10116:5:44","nodeType":"YulIdentifier","src":"10116:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"10105:7:44","nodeType":"YulIdentifier","src":"10105:7:44"}]}]},"name":"cleanup_t_rational_48_by_1","nativeSrc":"10041:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10077:5:44","nodeType":"YulTypedName","src":"10077:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10087:7:44","nodeType":"YulTypedName","src":"10087:7:44","type":""}],"src":"10041:86:44"},{"body":{"nativeSrc":"10176:43:44","nodeType":"YulBlock","src":"10176:43:44","statements":[{"nativeSrc":"10186:27:44","nodeType":"YulAssignment","src":"10186:27:44","value":{"arguments":[{"name":"value","nativeSrc":"10201:5:44","nodeType":"YulIdentifier","src":"10201:5:44"},{"kind":"number","nativeSrc":"10208:4:44","nodeType":"YulLiteral","src":"10208:4:44","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"10197:3:44","nodeType":"YulIdentifier","src":"10197:3:44"},"nativeSrc":"10197:16:44","nodeType":"YulFunctionCall","src":"10197:16:44"},"variableNames":[{"name":"cleaned","nativeSrc":"10186:7:44","nodeType":"YulIdentifier","src":"10186:7:44"}]}]},"name":"cleanup_t_uint8","nativeSrc":"10133:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10158:5:44","nodeType":"YulTypedName","src":"10158:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10168:7:44","nodeType":"YulTypedName","src":"10168:7:44","type":""}],"src":"10133:86:44"},{"body":{"nativeSrc":"10292:89:44","nodeType":"YulBlock","src":"10292:89:44","statements":[{"nativeSrc":"10302:73:44","nodeType":"YulAssignment","src":"10302:73:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10367:5:44","nodeType":"YulIdentifier","src":"10367:5:44"}],"functionName":{"name":"cleanup_t_rational_48_by_1","nativeSrc":"10340:26:44","nodeType":"YulIdentifier","src":"10340:26:44"},"nativeSrc":"10340:33:44","nodeType":"YulFunctionCall","src":"10340:33:44"}],"functionName":{"name":"identity","nativeSrc":"10331:8:44","nodeType":"YulIdentifier","src":"10331:8:44"},"nativeSrc":"10331:43:44","nodeType":"YulFunctionCall","src":"10331:43:44"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"10315:15:44","nodeType":"YulIdentifier","src":"10315:15:44"},"nativeSrc":"10315:60:44","nodeType":"YulFunctionCall","src":"10315:60:44"},"variableNames":[{"name":"converted","nativeSrc":"10302:9:44","nodeType":"YulIdentifier","src":"10302:9:44"}]}]},"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"10225:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10272:5:44","nodeType":"YulTypedName","src":"10272:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"10282:9:44","nodeType":"YulTypedName","src":"10282:9:44","type":""}],"src":"10225:156:44"},{"body":{"nativeSrc":"10459:73:44","nodeType":"YulBlock","src":"10459:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10476:3:44","nodeType":"YulIdentifier","src":"10476:3:44"},{"arguments":[{"name":"value","nativeSrc":"10519:5:44","nodeType":"YulIdentifier","src":"10519:5:44"}],"functionName":{"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"10481:37:44","nodeType":"YulIdentifier","src":"10481:37:44"},"nativeSrc":"10481:44:44","nodeType":"YulFunctionCall","src":"10481:44:44"}],"functionName":{"name":"mstore","nativeSrc":"10469:6:44","nodeType":"YulIdentifier","src":"10469:6:44"},"nativeSrc":"10469:57:44","nodeType":"YulFunctionCall","src":"10469:57:44"},"nativeSrc":"10469:57:44","nodeType":"YulExpressionStatement","src":"10469:57:44"}]},"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"10387:145:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10447:5:44","nodeType":"YulTypedName","src":"10447:5:44","type":""},{"name":"pos","nativeSrc":"10454:3:44","nodeType":"YulTypedName","src":"10454:3:44","type":""}],"src":"10387:145:44"},{"body":{"nativeSrc":"10583:32:44","nodeType":"YulBlock","src":"10583:32:44","statements":[{"nativeSrc":"10593:16:44","nodeType":"YulAssignment","src":"10593:16:44","value":{"name":"value","nativeSrc":"10604:5:44","nodeType":"YulIdentifier","src":"10604:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"10593:7:44","nodeType":"YulIdentifier","src":"10593:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"10538:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10565:5:44","nodeType":"YulTypedName","src":"10565:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10575:7:44","nodeType":"YulTypedName","src":"10575:7:44","type":""}],"src":"10538:77:44"},{"body":{"nativeSrc":"10686:53:44","nodeType":"YulBlock","src":"10686:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10703:3:44","nodeType":"YulIdentifier","src":"10703:3:44"},{"arguments":[{"name":"value","nativeSrc":"10726:5:44","nodeType":"YulIdentifier","src":"10726:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10708:17:44","nodeType":"YulIdentifier","src":"10708:17:44"},"nativeSrc":"10708:24:44","nodeType":"YulFunctionCall","src":"10708:24:44"}],"functionName":{"name":"mstore","nativeSrc":"10696:6:44","nodeType":"YulIdentifier","src":"10696:6:44"},"nativeSrc":"10696:37:44","nodeType":"YulFunctionCall","src":"10696:37:44"},"nativeSrc":"10696:37:44","nodeType":"YulExpressionStatement","src":"10696:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"10621:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10674:5:44","nodeType":"YulTypedName","src":"10674:5:44","type":""},{"name":"pos","nativeSrc":"10681:3:44","nodeType":"YulTypedName","src":"10681:3:44","type":""}],"src":"10621:118:44"},{"body":{"nativeSrc":"10878:213:44","nodeType":"YulBlock","src":"10878:213:44","statements":[{"nativeSrc":"10888:26:44","nodeType":"YulAssignment","src":"10888:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"10900:9:44","nodeType":"YulIdentifier","src":"10900:9:44"},{"kind":"number","nativeSrc":"10911:2:44","nodeType":"YulLiteral","src":"10911:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10896:3:44","nodeType":"YulIdentifier","src":"10896:3:44"},"nativeSrc":"10896:18:44","nodeType":"YulFunctionCall","src":"10896:18:44"},"variableNames":[{"name":"tail","nativeSrc":"10888:4:44","nodeType":"YulIdentifier","src":"10888:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10975:6:44","nodeType":"YulIdentifier","src":"10975:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"10988:9:44","nodeType":"YulIdentifier","src":"10988:9:44"},{"kind":"number","nativeSrc":"10999:1:44","nodeType":"YulLiteral","src":"10999:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10984:3:44","nodeType":"YulIdentifier","src":"10984:3:44"},"nativeSrc":"10984:17:44","nodeType":"YulFunctionCall","src":"10984:17:44"}],"functionName":{"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"10924:50:44","nodeType":"YulIdentifier","src":"10924:50:44"},"nativeSrc":"10924:78:44","nodeType":"YulFunctionCall","src":"10924:78:44"},"nativeSrc":"10924:78:44","nodeType":"YulExpressionStatement","src":"10924:78:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"11056:6:44","nodeType":"YulIdentifier","src":"11056:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"11069:9:44","nodeType":"YulIdentifier","src":"11069:9:44"},{"kind":"number","nativeSrc":"11080:2:44","nodeType":"YulLiteral","src":"11080:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11065:3:44","nodeType":"YulIdentifier","src":"11065:3:44"},"nativeSrc":"11065:18:44","nodeType":"YulFunctionCall","src":"11065:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11012:43:44","nodeType":"YulIdentifier","src":"11012:43:44"},"nativeSrc":"11012:72:44","nodeType":"YulFunctionCall","src":"11012:72:44"},"nativeSrc":"11012:72:44","nodeType":"YulExpressionStatement","src":"11012:72:44"}]},"name":"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed","nativeSrc":"10745:346:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10842:9:44","nodeType":"YulTypedName","src":"10842:9:44","type":""},{"name":"value1","nativeSrc":"10854:6:44","nodeType":"YulTypedName","src":"10854:6:44","type":""},{"name":"value0","nativeSrc":"10862:6:44","nodeType":"YulTypedName","src":"10862:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10873:4:44","nodeType":"YulTypedName","src":"10873:4:44","type":""}],"src":"10745:346:44"},{"body":{"nativeSrc":"11141:160:44","nodeType":"YulBlock","src":"11141:160:44","statements":[{"nativeSrc":"11151:24:44","nodeType":"YulAssignment","src":"11151:24:44","value":{"arguments":[{"name":"x","nativeSrc":"11173:1:44","nodeType":"YulIdentifier","src":"11173:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"11156:16:44","nodeType":"YulIdentifier","src":"11156:16:44"},"nativeSrc":"11156:19:44","nodeType":"YulFunctionCall","src":"11156:19:44"},"variableNames":[{"name":"x","nativeSrc":"11151:1:44","nodeType":"YulIdentifier","src":"11151:1:44"}]},{"nativeSrc":"11184:24:44","nodeType":"YulAssignment","src":"11184:24:44","value":{"arguments":[{"name":"y","nativeSrc":"11206:1:44","nodeType":"YulIdentifier","src":"11206:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"11189:16:44","nodeType":"YulIdentifier","src":"11189:16:44"},"nativeSrc":"11189:19:44","nodeType":"YulFunctionCall","src":"11189:19:44"},"variableNames":[{"name":"y","nativeSrc":"11184:1:44","nodeType":"YulIdentifier","src":"11184:1:44"}]},{"nativeSrc":"11217:17:44","nodeType":"YulAssignment","src":"11217:17:44","value":{"arguments":[{"name":"x","nativeSrc":"11229:1:44","nodeType":"YulIdentifier","src":"11229:1:44"},{"name":"y","nativeSrc":"11232:1:44","nodeType":"YulIdentifier","src":"11232:1:44"}],"functionName":{"name":"sub","nativeSrc":"11225:3:44","nodeType":"YulIdentifier","src":"11225:3:44"},"nativeSrc":"11225:9:44","nodeType":"YulFunctionCall","src":"11225:9:44"},"variableNames":[{"name":"diff","nativeSrc":"11217:4:44","nodeType":"YulIdentifier","src":"11217:4:44"}]},{"body":{"nativeSrc":"11272:22:44","nodeType":"YulBlock","src":"11272:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11274:16:44","nodeType":"YulIdentifier","src":"11274:16:44"},"nativeSrc":"11274:18:44","nodeType":"YulFunctionCall","src":"11274:18:44"},"nativeSrc":"11274:18:44","nodeType":"YulExpressionStatement","src":"11274:18:44"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"11250:4:44","nodeType":"YulIdentifier","src":"11250:4:44"},{"kind":"number","nativeSrc":"11256:14:44","nodeType":"YulLiteral","src":"11256:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11247:2:44","nodeType":"YulIdentifier","src":"11247:2:44"},"nativeSrc":"11247:24:44","nodeType":"YulFunctionCall","src":"11247:24:44"},"nativeSrc":"11244:50:44","nodeType":"YulIf","src":"11244:50:44"}]},"name":"checked_sub_t_uint48","nativeSrc":"11097:204:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11127:1:44","nodeType":"YulTypedName","src":"11127:1:44","type":""},{"name":"y","nativeSrc":"11130:1:44","nodeType":"YulTypedName","src":"11130:1:44","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"11136:4:44","nodeType":"YulTypedName","src":"11136:4:44","type":""}],"src":"11097:204:44"}]},"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 cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint48(value))\n    }\n\n    function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\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 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_bytes32t_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_bytes32(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 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 validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_uint48(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_uint48(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ISciRegistry_$8112_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISciRegistry_$8112_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__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_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_contract$_IVerifier_$8474(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IVerifier_$8474(value) {\n        if iszero(eq(value, cleanup_t_contract$_IVerifier_$8474(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IVerifier_$8474(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IVerifier_$8474(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_contract$_IVerifier_$8474(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function convert_t_contract$_IVerifier_$8474_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IVerifier_$8474_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint48(x, y) -> sum {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_rational_48_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n    }\n\n    function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\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_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_sub_t_uint48(x, y) -> diff {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7564":[{"length":32,"start":1598},{"length":32,"start":1942},{"length":32,"start":2555}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063cc8463c81161007c578063cc8463c814610340578063cefc14291461035e578063cf6eefb714610368578063d547741f14610387578063d602b9fd146103a3578063dd738e6c146103ad57610142565b80638da5cb5b1461029957806391d14854146102b7578063a1eda53c146102e7578063a217fddf14610306578063a8c008611461032457610142565b80632f2ff15d1161010a5780632f2ff15d146101ed57806336568abe14610209578063634e93da14610225578063649a5ec7146102415780637b1039991461025d57806384ef8ffc1461027b57610142565b806301ffc9a714610147578063022d63fb146101775780630aa6220b14610195578063248a9ca31461019f5780632a3fea62146101cf575b600080fd5b610161600480360381019061015c91906114bb565b6103c9565b60405161016e9190611503565b60405180910390f35b61017f610443565b60405161018c919061153f565b60405180910390f35b61019d61044e565b005b6101b960048036038101906101b49190611590565b610466565b6040516101c691906115cc565b60405180910390f35b6101d7610485565b6040516101e491906115cc565b60405180910390f35b61020760048036038101906102029190611645565b6104a9565b005b610223600480360381019061021e9190611645565b6104f3565b005b61023f600480360381019061023a9190611685565b610608565b005b61025b600480360381019061025691906116de565b610622565b005b61026561063c565b604051610272919061176a565b60405180910390f35b610283610660565b6040516102909190611794565b60405180910390f35b6102a161068a565b6040516102ae9190611794565b60405180910390f35b6102d160048036038101906102cc9190611645565b610699565b6040516102de9190611503565b60405180910390f35b6102ef610703565b6040516102fd9291906117af565b60405180910390f35b61030e610763565b60405161031b91906115cc565b60405180910390f35b61033e600480360381019061033991906117d8565b61076a565b005b610348610826565b604051610355919061153f565b60405180910390f35b610366610894565b005b61037061092a565b60405161037e929190611818565b60405180910390f35b6103a1600480360381019061039c9190611645565b61096d565b005b6103ab6109b7565b005b6103c760048036038101906103c2919061187f565b6109cf565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043c575061043b82610a8e565b5b9050919050565b600062069780905090565b6000801b61045b81610b08565b610463610b1c565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b82036104e5576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104ef8282610b29565b5050565b6000801b821480156105375750610508610660565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156105fa5760008061054761092a565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158061058d575061058b81610b4b565b155b8061059e575061059c81610b60565b155b156105e057806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016105d7919061153f565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106048282610b74565b5050565b6000801b61061581610b08565b61061e82610bef565b5050565b6000801b61062f81610b08565b61063882610c6a565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610694610660565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061072681610b4b565b8015610738575061073681610b60565b155b6107445760008061075b565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6861079481610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086184846040518363ffffffff1660e01b81526004016107ef9291906118d2565b600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b50505050505050565b6000806002601a9054906101000a900465ffffffffffff16905061084981610b4b565b801561085a575061085981610b60565b5b610878576001601a9054906101000a900465ffffffffffff1661088e565b600260149054906101000a900465ffffffffffff165b91505090565b600061089e61092a565b5090508073ffffffffffffffffffffffffffffffffffffffff166108c0610cd1565b73ffffffffffffffffffffffffffffffffffffffff161461091f576108e3610cd1565b6040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016109169190611794565b60405180910390fd5b610927610cd9565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b82036109a9576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b38282610da8565b5050565b6000801b6109c481610b08565b6109cc610dca565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c686109f981610b08565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8585856040518463ffffffff1660e01b8152600401610a569392919061191c565b600060405180830381600087803b158015610a7057600080fd5b505af1158015610a84573d6000803e3d6000fd5b5050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b015750610b0082610dd7565b5b9050919050565b610b1981610b14610cd1565b610e41565b50565b610b27600080610e92565b565b610b3282610466565b610b3b81610b08565b610b458383610f82565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610b7c610cd1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be0576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bea828261104f565b505050565b6000610bf9610826565b610c02426110d2565b610c0c9190611982565b9050610c18828261112c565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610c5e919061153f565b60405180910390a25050565b6000610c75826111df565b610c7e426110d2565b610c889190611982565b9050610c948282610e92565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610cc59291906117af565b60405180910390a15050565b600033905090565b600080610ce461092a565b91509150610cf181610b4b565b1580610d035750610d0181610b60565b155b15610d4557806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610d3c919061153f565b60405180910390fd5b610d596000801b610d54610660565b61104f565b50610d676000801b83610f82565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b610db182610466565b610dba81610b08565b610dc4838361104f565b50505050565b610dd560008061112c565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e4b8282610699565b610e8e5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e859291906118d2565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff169050610eb481610b4b565b15610f3357610ec281610b60565b15610f0557600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550610f32565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361103d57600073ffffffffffffffffffffffffffffffffffffffff16610fae610660565b73ffffffffffffffffffffffffffffffffffffffff1614610ffb576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611047838361123e565b905092915050565b60008060001b831480156110955750611066610660565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156110c057600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6110ca838361132f565b905092915050565b600065ffffffffffff8016821115611124576030826040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260040161111b929190611a1d565b60405180910390fd5b819050919050565b600061113661092a565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506111a881610b4b565b156111da577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806111ea610826565b90508065ffffffffffff168365ffffffffffff161161121457828161120f9190611a46565b611236565b6112358365ffffffffffff16611228610443565b65ffffffffffff16611421565b5b915050919050565b600061124a8383610699565b61132457600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112c1610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611329565b600090505b92915050565b600061133b8383610699565b1561141657600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506113b3610cd1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001905061141b565b600090505b92915050565b60006114308284108484611438565b905092915050565b600061144384611452565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61149881611463565b81146114a357600080fd5b50565b6000813590506114b58161148f565b92915050565b6000602082840312156114d1576114d061145e565b5b60006114df848285016114a6565b91505092915050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b600065ffffffffffff82169050919050565b6115398161151e565b82525050565b60006020820190506115546000830184611530565b92915050565b6000819050919050565b61156d8161155a565b811461157857600080fd5b50565b60008135905061158a81611564565b92915050565b6000602082840312156115a6576115a561145e565b5b60006115b48482850161157b565b91505092915050565b6115c68161155a565b82525050565b60006020820190506115e160008301846115bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611612826115e7565b9050919050565b61162281611607565b811461162d57600080fd5b50565b60008135905061163f81611619565b92915050565b6000806040838503121561165c5761165b61145e565b5b600061166a8582860161157b565b925050602061167b85828601611630565b9150509250929050565b60006020828403121561169b5761169a61145e565b5b60006116a984828501611630565b91505092915050565b6116bb8161151e565b81146116c657600080fd5b50565b6000813590506116d8816116b2565b92915050565b6000602082840312156116f4576116f361145e565b5b6000611702848285016116c9565b91505092915050565b6000819050919050565b600061173061172b611726846115e7565b61170b565b6115e7565b9050919050565b600061174282611715565b9050919050565b600061175482611737565b9050919050565b61176481611749565b82525050565b600060208201905061177f600083018461175b565b92915050565b61178e81611607565b82525050565b60006020820190506117a96000830184611785565b92915050565b60006040820190506117c46000830185611530565b6117d16020830184611530565b9392505050565b600080604083850312156117ef576117ee61145e565b5b60006117fd85828601611630565b925050602061180e8582860161157b565b9150509250929050565b600060408201905061182d6000830185611785565b61183a6020830184611530565b9392505050565b600061184c82611607565b9050919050565b61185c81611841565b811461186757600080fd5b50565b60008135905061187981611853565b92915050565b6000806000606084860312156118985761189761145e565b5b60006118a686828701611630565b93505060206118b78682870161157b565b92505060406118c88682870161186a565b9150509250925092565b60006040820190506118e76000830185611785565b6118f460208301846115bd565b9392505050565b600061190682611737565b9050919050565b611916816118fb565b82525050565b60006060820190506119316000830186611785565b61193e60208301856115bd565b61194b604083018461190d565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061198d8261151e565b91506119988361151e565b9250828201905065ffffffffffff8111156119b6576119b5611953565b5b92915050565b6000819050919050565b600060ff82169050919050565b60006119ee6119e96119e4846119bc565b61170b565b6119c6565b9050919050565b6119fe816119d3565b82525050565b6000819050919050565b611a1781611a04565b82525050565b6000604082019050611a3260008301856119f5565b611a3f6020830184611a0e565b9392505050565b6000611a518261151e565b9150611a5c8361151e565b9250828203905065ffffffffffff811115611a7a57611a79611953565b5b9291505056fea26469706673582212204307e6557245d6962c4aa6df3b0d00da7f70a8fe6d588026bced90e93aa484cb64736f6c634300081c0033","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 0x8DA5CB5B GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3A3 JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3AD JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x299 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x306 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x324 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x225 JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x27B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x195 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x19F JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x161 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15C SWAP2 SWAP1 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x1503 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17F PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18C SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19D PUSH2 0x44E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1590 JUMP JUMPDEST PUSH2 0x466 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D7 PUSH2 0x485 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E4 SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x207 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x223 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21E SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x4F3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x1685 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x256 SWAP2 SWAP1 PUSH2 0x16DE JUMP JUMPDEST PUSH2 0x622 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x265 PUSH2 0x63C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x272 SWAP2 SWAP1 PUSH2 0x176A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x283 PUSH2 0x660 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A1 PUSH2 0x68A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AE SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2D1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x699 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1503 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EF PUSH2 0x703 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FD SWAP3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30E PUSH2 0x763 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x15CC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x76A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x348 PUSH2 0x826 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0x894 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x370 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP3 SWAP2 SWAP1 PUSH2 0x1818 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39C SWAP2 SWAP1 PUSH2 0x1645 JUMP JUMPDEST PUSH2 0x96D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AB PUSH2 0x9B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x187F JUMP JUMPDEST PUSH2 0x9CF JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x43C JUMPI POP PUSH2 0x43B DUP3 PUSH2 0xA8E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x45B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x463 PUSH2 0xB1C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4EF DUP3 DUP3 PUSH2 0xB29 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x537 JUMPI POP PUSH2 0x508 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x5FA JUMPI PUSH1 0x0 DUP1 PUSH2 0x547 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x58D JUMPI POP PUSH2 0x58B DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x59E JUMPI POP PUSH2 0x59C DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5E0 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5D7 SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x604 DUP3 DUP3 PUSH2 0xB74 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x615 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x61E DUP3 PUSH2 0xBEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x62F DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x638 DUP3 PUSH2 0xC6A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x694 PUSH2 0x660 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x726 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x738 JUMPI POP PUSH2 0x736 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x744 JUMPI PUSH1 0x0 DUP1 PUSH2 0x75B JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x794 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7EF SWAP3 SWAP2 SWAP1 PUSH2 0x18D2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x809 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x849 DUP2 PUSH2 0xB4B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x85A JUMPI POP PUSH2 0x859 DUP2 PUSH2 0xB60 JUMP JUMPDEST JUMPDEST PUSH2 0x878 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x88E JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89E PUSH2 0x92A JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8C0 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x91F JUMPI PUSH2 0x8E3 PUSH2 0xCD1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x916 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x927 PUSH2 0xCD9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x9A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH2 0xDA8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x9C4 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0x9CC PUSH2 0xDCA JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH2 0x9F9 DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA56 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x191C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA84 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB01 JUMPI POP PUSH2 0xB00 DUP3 PUSH2 0xDD7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB19 DUP2 PUSH2 0xB14 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xE41 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xB27 PUSH1 0x0 DUP1 PUSH2 0xE92 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xB32 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xB3B DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xB45 DUP4 DUP4 PUSH2 0xF82 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBE0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBEA DUP3 DUP3 PUSH2 0x104F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x826 JUMP JUMPDEST PUSH2 0xC02 TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC0C SWAP2 SWAP1 PUSH2 0x1982 JUMP JUMPDEST SWAP1 POP PUSH2 0xC18 DUP3 DUP3 PUSH2 0x112C JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC75 DUP3 PUSH2 0x11DF JUMP JUMPDEST PUSH2 0xC7E TIMESTAMP PUSH2 0x10D2 JUMP JUMPDEST PUSH2 0xC88 SWAP2 SWAP1 PUSH2 0x1982 JUMP JUMPDEST SWAP1 POP PUSH2 0xC94 DUP3 DUP3 PUSH2 0xE92 JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCC5 SWAP3 SWAP2 SWAP1 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xCE4 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xCF1 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xD03 JUMPI POP PUSH2 0xD01 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xD45 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD3C SWAP2 SWAP1 PUSH2 0x153F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD59 PUSH1 0x0 DUP1 SHL PUSH2 0xD54 PUSH2 0x660 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST POP PUSH2 0xD67 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xF82 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xDB1 DUP3 PUSH2 0x466 JUMP JUMPDEST PUSH2 0xDBA DUP2 PUSH2 0xB08 JUMP JUMPDEST PUSH2 0xDC4 DUP4 DUP4 PUSH2 0x104F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xDD5 PUSH1 0x0 DUP1 PUSH2 0x112C JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4B DUP3 DUP3 PUSH2 0x699 JUMP JUMPDEST PUSH2 0xE8E JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE85 SWAP3 SWAP2 SWAP1 PUSH2 0x18D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xEB4 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0xF33 JUMPI PUSH2 0xEC2 DUP2 PUSH2 0xB60 JUMP JUMPDEST ISZERO PUSH2 0xF05 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xF32 JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x103D JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAE PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFFB JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1047 DUP4 DUP4 PUSH2 0x123E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x1095 JUMPI POP PUSH2 0x1066 PUSH2 0x660 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x10CA DUP4 DUP4 PUSH2 0x132F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1124 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x111B SWAP3 SWAP2 SWAP1 PUSH2 0x1A1D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1136 PUSH2 0x92A JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x11A8 DUP2 PUSH2 0xB4B JUMP JUMPDEST ISZERO PUSH2 0x11DA JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11EA PUSH2 0x826 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1214 JUMPI DUP3 DUP2 PUSH2 0x120F SWAP2 SWAP1 PUSH2 0x1A46 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x1235 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1228 PUSH2 0x443 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1421 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x124A DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST PUSH2 0x1324 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x12C1 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1329 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x133B DUP4 DUP4 PUSH2 0x699 JUMP JUMPDEST ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x13B3 PUSH2 0xCD1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x141B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1430 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1438 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1443 DUP5 PUSH2 0x1452 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1498 DUP2 PUSH2 0x1463 JUMP JUMPDEST DUP2 EQ PUSH2 0x14A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x14B5 DUP2 PUSH2 0x148F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D1 JUMPI PUSH2 0x14D0 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14DF DUP5 DUP3 DUP6 ADD PUSH2 0x14A6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14FD DUP2 PUSH2 0x14E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1518 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1539 DUP2 PUSH2 0x151E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1554 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x156D DUP2 PUSH2 0x155A JUMP JUMPDEST DUP2 EQ PUSH2 0x1578 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x158A DUP2 PUSH2 0x1564 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15A6 JUMPI PUSH2 0x15A5 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x15B4 DUP5 DUP3 DUP6 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15C6 DUP2 PUSH2 0x155A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1612 DUP3 PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1622 DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP2 EQ PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x163F DUP2 PUSH2 0x1619 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x165C JUMPI PUSH2 0x165B PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x166A DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x167B DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x169B JUMPI PUSH2 0x169A PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x16A9 DUP5 DUP3 DUP6 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16BB DUP2 PUSH2 0x151E JUMP JUMPDEST DUP2 EQ PUSH2 0x16C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x16D8 DUP2 PUSH2 0x16B2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F4 JUMPI PUSH2 0x16F3 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1702 DUP5 DUP3 DUP6 ADD PUSH2 0x16C9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1730 PUSH2 0x172B PUSH2 0x1726 DUP5 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x15E7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1742 DUP3 PUSH2 0x1715 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1754 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1764 DUP2 PUSH2 0x1749 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x177F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x175B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x1607 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x17A9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1785 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17C4 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1530 JUMP JUMPDEST PUSH2 0x17D1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17EF JUMPI PUSH2 0x17EE PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FD DUP6 DUP3 DUP7 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x180E DUP6 DUP3 DUP7 ADD PUSH2 0x157B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x183A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1530 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x184C DUP3 PUSH2 0x1607 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x185C DUP2 PUSH2 0x1841 JUMP JUMPDEST DUP2 EQ PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1879 DUP2 PUSH2 0x1853 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1898 JUMPI PUSH2 0x1897 PUSH2 0x145E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x18A6 DUP7 DUP3 DUP8 ADD PUSH2 0x1630 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18B7 DUP7 DUP3 DUP8 ADD PUSH2 0x157B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18C8 DUP7 DUP3 DUP8 ADD PUSH2 0x186A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x18E7 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18F4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15BD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1906 DUP3 PUSH2 0x1737 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1916 DUP2 PUSH2 0x18FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1931 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x193E PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x194B PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x190D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x198D DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1998 DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH2 0x19B5 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19EE PUSH2 0x19E9 PUSH2 0x19E4 DUP5 PUSH2 0x19BC JUMP JUMPDEST PUSH2 0x170B JUMP JUMPDEST PUSH2 0x19C6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FE DUP2 PUSH2 0x19D3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A17 DUP2 PUSH2 0x1A04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x19F5 JUMP JUMPDEST PUSH2 0x1A3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A0E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP3 PUSH2 0x151E JUMP JUMPDEST SWAP2 POP PUSH2 0x1A5C DUP4 PUSH2 0x151E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A7A JUMPI PUSH2 0x1A79 PUSH2 0x1953 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NUMBER SMOD 0xE6 SSTORE PUSH19 0x45D6962C4AA6DF3B0D00DA7F70A8FE6D588026 0xBC 0xED SWAP1 0xE9 GASPRICE LOG4 DUP5 0xCB PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"743:2140:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;849:80:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;936:38:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:106:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1954:180:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2639:242:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2667:219:9;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;10927:126::-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;849:80:36:-;896:33;849:80;:::o;3198:265:9:-;2232:4:6;3325:18:9;;3317:4;:26;3313:104;;3366:40;;;;;;;;;;;;;;3313:104;3426:30;3442:4;3448:7;3426:15;:30::i;:::-;3198:265;;:::o;4515:566::-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;8068:150::-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;936:38:36:-;;;:::o;6707:106:9:-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;1954:180:36:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;2085:8:36::1;:23;;;2109:5;2116:10;2085:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1954:180:::0;;;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;3563:267::-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2639:242:36:-;896:33;2464:16:6;2475:4;2464:10;:16::i;:::-;2810:8:36::1;:35;;;2846:5;2853:10;2865:8;2810:64;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2639:242:::0;;;;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;4226:136:6:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;14471:106:9:-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;5946:271::-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:44:-;197:1;194;187: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:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:77::-;2003:7;2032:5;2021:16;;1966:77;;;:::o;2049:122::-;2122:24;2140:5;2122:24;:::i;:::-;2115:5;2112:35;2102:63;;2161:1;2158;2151:12;2102:63;2049:122;:::o;2177:139::-;2223:5;2261:6;2248:20;2239:29;;2277:33;2304:5;2277:33;:::i;:::-;2177:139;;;;:::o;2322:329::-;2381:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:119;;;2436:79;;:::i;:::-;2398:119;2556:1;2581:53;2626:7;2617:6;2606:9;2602:22;2581:53;:::i;:::-;2571:63;;2527:117;2322:329;;;;:::o;2657:118::-;2744:24;2762:5;2744:24;:::i;:::-;2739:3;2732:37;2657:118;;:::o;2781:222::-;2874:4;2912:2;2901:9;2897:18;2889:26;;2925:71;2993:1;2982:9;2978:17;2969:6;2925:71;:::i;:::-;2781:222;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:329::-;4055:6;4104:2;4092:9;4083:7;4079:23;4075:32;4072:119;;;4110:79;;:::i;:::-;4072:119;4230:1;4255:53;4300:7;4291:6;4280:9;4276:22;4255:53;:::i;:::-;4245:63;;4201:117;3996:329;;;;:::o;4331:120::-;4403:23;4420:5;4403:23;:::i;:::-;4396:5;4393:34;4383:62;;4441:1;4438;4431:12;4383:62;4331:120;:::o;4457:137::-;4502:5;4540:6;4527:20;4518:29;;4556:32;4582:5;4556:32;:::i;:::-;4457:137;;;;:::o;4600:327::-;4658:6;4707:2;4695:9;4686:7;4682:23;4678:32;4675:119;;;4713:79;;:::i;:::-;4675:119;4833:1;4858:52;4902:7;4893:6;4882:9;4878:22;4858:52;:::i;:::-;4848:62;;4804:116;4600:327;;;;:::o;4933:60::-;4961:3;4982:5;4975:12;;4933:60;;;:::o;4999:142::-;5049:9;5082:53;5100:34;5109:24;5127:5;5109:24;:::i;:::-;5100:34;:::i;:::-;5082:53;:::i;:::-;5069:66;;4999:142;;;:::o;5147:126::-;5197:9;5230:37;5261:5;5230:37;:::i;:::-;5217:50;;5147:126;;;:::o;5279:147::-;5350:9;5383:37;5414:5;5383:37;:::i;:::-;5370:50;;5279:147;;;:::o;5432:173::-;5540:58;5592:5;5540:58;:::i;:::-;5535:3;5528:71;5432:173;;:::o;5611:264::-;5725:4;5763:2;5752:9;5748:18;5740:26;;5776:92;5865:1;5854:9;5850:17;5841:6;5776:92;:::i;:::-;5611:264;;;;:::o;5881:118::-;5968:24;5986:5;5968:24;:::i;:::-;5963:3;5956:37;5881:118;;:::o;6005:222::-;6098:4;6136:2;6125:9;6121:18;6113:26;;6149:71;6217:1;6206:9;6202:17;6193:6;6149:71;:::i;:::-;6005:222;;;;:::o;6233:324::-;6350:4;6388:2;6377:9;6373:18;6365:26;;6401:69;6467:1;6456:9;6452:17;6443:6;6401:69;:::i;:::-;6480:70;6546:2;6535:9;6531:18;6522:6;6480:70;:::i;:::-;6233:324;;;;;:::o;6563:474::-;6631:6;6639;6688:2;6676:9;6667:7;6663:23;6659:32;6656:119;;;6694:79;;:::i;:::-;6656:119;6814:1;6839:53;6884:7;6875:6;6864:9;6860:22;6839:53;:::i;:::-;6829:63;;6785:117;6941:2;6967:53;7012:7;7003:6;6992:9;6988:22;6967:53;:::i;:::-;6957:63;;6912:118;6563:474;;;;;:::o;7043:328::-;7162:4;7200:2;7189:9;7185:18;7177:26;;7213:71;7281:1;7270:9;7266:17;7257:6;7213:71;:::i;:::-;7294:70;7360:2;7349:9;7345:18;7336:6;7294:70;:::i;:::-;7043:328;;;;;:::o;7377:114::-;7432:7;7461:24;7479:5;7461:24;:::i;:::-;7450:35;;7377:114;;;:::o;7497:158::-;7588:42;7624:5;7588:42;:::i;:::-;7581:5;7578:53;7568:81;;7645:1;7642;7635:12;7568:81;7497:158;:::o;7661:175::-;7725:5;7763:6;7750:20;7741:29;;7779:51;7824:5;7779:51;:::i;:::-;7661:175;;;;:::o;7842:655::-;7937:6;7945;7953;8002:2;7990:9;7981:7;7977:23;7973:32;7970:119;;;8008:79;;:::i;:::-;7970:119;8128:1;8153:53;8198:7;8189:6;8178:9;8174:22;8153:53;:::i;:::-;8143:63;;8099:117;8255:2;8281:53;8326:7;8317:6;8306:9;8302:22;8281:53;:::i;:::-;8271:63;;8226:118;8383:2;8409:71;8472:7;8463:6;8452:9;8448:22;8409:71;:::i;:::-;8399:81;;8354:136;7842:655;;;;;:::o;8503:332::-;8624:4;8662:2;8651:9;8647:18;8639:26;;8675:71;8743:1;8732:9;8728:17;8719:6;8675:71;:::i;:::-;8756:72;8824:2;8813:9;8809:18;8800:6;8756:72;:::i;:::-;8503:332;;;;;:::o;8841:144::-;8909:9;8942:37;8973:5;8942:37;:::i;:::-;8929:50;;8841:144;;;:::o;8991:167::-;9096:55;9145:5;9096:55;:::i;:::-;9091:3;9084:68;8991:167;;:::o;9164:478::-;9331:4;9369:2;9358:9;9354:18;9346:26;;9382:71;9450:1;9439:9;9435:17;9426:6;9382:71;:::i;:::-;9463:72;9531:2;9520:9;9516:18;9507:6;9463:72;:::i;:::-;9545:90;9631:2;9620:9;9616:18;9607:6;9545:90;:::i;:::-;9164:478;;;;;;:::o;9648:180::-;9696:77;9693:1;9686:88;9793:4;9790:1;9783:15;9817:4;9814:1;9807:15;9834:201;9873:3;9892:19;9909:1;9892:19;:::i;:::-;9887:24;;9925:19;9942:1;9925:19;:::i;:::-;9920:24;;9967:1;9964;9960:9;9953:16;;9990:14;9985:3;9982:23;9979:49;;;10008:18;;:::i;:::-;9979:49;9834:201;;;;:::o;10041:86::-;10087:7;10116:5;10105:16;;10041:86;;;:::o;10133:::-;10168:7;10208:4;10201:5;10197:16;10186:27;;10133:86;;;:::o;10225:156::-;10282:9;10315:60;10331:43;10340:33;10367:5;10340:33;:::i;:::-;10331:43;:::i;:::-;10315:60;:::i;:::-;10302:73;;10225:156;;;:::o;10387:145::-;10481:44;10519:5;10481:44;:::i;:::-;10476:3;10469:57;10387:145;;:::o;10538:77::-;10575:7;10604:5;10593:16;;10538:77;;;:::o;10621:118::-;10708:24;10726:5;10708:24;:::i;:::-;10703:3;10696:37;10621:118;;:::o;10745:346::-;10873:4;10911:2;10900:9;10896:18;10888:26;;10924:78;10999:1;10988:9;10984:17;10975:6;10924:78;:::i;:::-;11012:72;11080:2;11069:9;11065:18;11056:6;11012:72;:::i;:::-;10745:346;;;;;:::o;11097:204::-;11136:4;11156:19;11173:1;11156:19;:::i;:::-;11151:24;;11189:19;11206:1;11189:19;:::i;:::-;11184:24;;11232:1;11229;11225:9;11217:17;;11256:14;11250:4;11247:24;11244:50;;;11274:18;;:::i;:::-;11244:50;11097:204;;;;:::o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","REGISTER_DOMAIN_ROLE()":"2a3fea62","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","registerDomain(address,bytes32)":"a8c00861","registerDomainWithVerifier(address,bytes32,address)":"dd738e6c","registry()":"7b103999","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sciRegistry\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"initialDelay\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"_initialDefaultAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract allows addresses with REGISTER_DOMAIN_ROLE role to register a domain in the SCI Registry. This will be use by the SCI team to register domains until the protocol became widly used and we don't need to be registering domains for protocols. The address with REGISTER_DOMAIN_ROLE and DEFAULT_ADMIN_ROLE should be a multisig.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\",\"params\":{\"_initialDefaultAdmin\":\"The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\",\"_sciRegistry\":\"Address of the custom domain registry contract.\",\"initialDelay\":\"The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"registerDomain(address,bytes32)\":{\"details\":\"Registers a domain in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered. Requirements: - The caller must have the REGISTER_DOMAIN_ROLE role.\",\"owner\":\"Address expected to be the domain owner.\"}},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"Registers a domain with a verifier in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered.\",\"owner\":\"Address expected to be the domain owner.\",\"verifier\":\"Address of the verifier contract. Requirements: - The caller must have the REGISTER_DOMAIN_ROLE role. Note: This contract must only be handle by the SCI Team so we assume it's safe to receive the owner.\"}},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"SciRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/SciRegistrar.sol\":\"SciRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/Registrars/SciRegistrar.sol\":{\"keccak256\":\"0xdd04591b23f295e3c9a37a6930d96742c45fe69bdbfa330b338db87e8863a401\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3a41b7015ad58ef9e5fec5f262191e2ef4d5b478b56ff2dbef3a691e12487491\",\"dweb:/ipfs/Qmejn22aYnTU9NZRXejHJtMjwm6XJoKEYNZcVcEiVXfZ6p\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"},{"astId":1741,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_pendingDefaultAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1743,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_pendingDefaultAdminSchedule","offset":20,"slot":"1","type":"t_uint48"},{"astId":1745,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_currentDelay","offset":26,"slot":"1","type":"t_uint48"},{"astId":1747,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_currentDefaultAdmin","offset":0,"slot":"2","type":"t_address"},{"astId":1749,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_pendingDelay","offset":20,"slot":"2","type":"t_uint48"},{"astId":1751,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"_pendingDelaySchedule","offset":26,"slot":"2","type":"t_uint48"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"contracts/Registrars/SciRegistrar.sol:SciRegistrar","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint48":{"encoding":"inplace","label":"uint48","numberOfBytes":"6"}}}}},"contracts/Registrars/SuperChainSourceRegistrar.sol":{"SuperChainSourceRegistrar":{"abi":[{"inputs":[],"name":"REGISTER_DOMAIN_GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"crossDomainMessanger","outputs":[{"internalType":"contract ICrossDomainMessanger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"targetRegistrar","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"REGISTER_DOMAIN_GAS_LIMIT()":"77a50701","REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT()":"d9e63a89","crossDomainMessanger()":"095f025e","targetRegistrar()":"c03799db"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_WITH_VERIFIER_GAS_LIMIT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessanger\",\"outputs\":[{\"internalType\":\"contract ICrossDomainMessanger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetRegistrar\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This abstract contract is designed to be inherited by registrar contracts that register domains on a superchain. It provides functionality to register a domain on a different chain via the superchain cross-domain messaging.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract by setting up the Cross domain messenger and the target registrar.\",\"params\":{\"_crossDomainMessanger\":\"The address of the cross-domain messenger contract.\",\"_targetRegistrar\":\"The address of the registrar contract on the target chain.\"}}},\"title\":\"SuperChainSourceRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/SuperChainSourceRegistrar.sol\":\"SuperChainSourceRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]},\"contracts/Registrars/SuperChainSourceRegistrar.sol\":{\"keccak256\":\"0x663983d0d252bcfd77c03abde389fa51241b8c02ea123e149469b244a828f6f9\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://8b86bc269483a9d5f60cd96bb8f473ead6416e83acbc21080a41119a00e0993d\",\"dweb:/ipfs/QmeRgX7cS2685Zri8Yj23jpnFiiUJLFrMyPj6iL65ph24R\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":7642,"contract":"contracts/Registrars/SuperChainSourceRegistrar.sol:SuperChainSourceRegistrar","label":"targetRegistrar","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}}}},"contracts/Registrars/SuperChainTargetRegistrar.sol":{"SuperChainTargetRegistrar":{"abi":[{"inputs":[{"internalType":"address","name":"_sciRegistry","type":"address"},{"internalType":"address","name":"_crossDomainMessanger","type":"address"},{"internalType":"uint48","name":"_initialDelay","type":"uint48"},{"internalType":"address","name":"_initialDefaultAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidMessageSender","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTER_DOMAIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"crossDomainMessanger","outputs":[{"internalType":"contract ICrossDomainMessanger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"registerDomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"registerDomainWithVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1784":{"entryPoint":null,"id":1784,"parameterSlots":2,"returnSlots":0},"@_7305":{"entryPoint":null,"id":7305,"parameterSlots":3,"returnSlots":0},"@_7763":{"entryPoint":null,"id":7763,"parameterSlots":4,"returnSlots":0},"@_grantRole_1449":{"entryPoint":603,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":344,"id":1970,"parameterSlots":2,"returnSlots":1},"@_msgSender_3399":{"entryPoint":962,"id":3399,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":561,"id":2035,"parameterSlots":0,"returnSlots":1},"@hasRole_1273":{"entryPoint":856,"id":1273,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48_fromMemory":{"entryPoint":1110,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint48t_address_fromMemory":{"entryPoint":1131,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1234,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1249,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":1007,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":975,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":1069,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":970,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1025,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":1087,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2394:44","nodeType":"YulBlock","src":"0:2394:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"889:53:44","nodeType":"YulBlock","src":"889:53:44","statements":[{"nativeSrc":"899:37:44","nodeType":"YulAssignment","src":"899:37:44","value":{"arguments":[{"name":"value","nativeSrc":"914:5:44","nodeType":"YulIdentifier","src":"914:5:44"},{"kind":"number","nativeSrc":"921:14:44","nodeType":"YulLiteral","src":"921:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"910:3:44","nodeType":"YulIdentifier","src":"910:3:44"},"nativeSrc":"910:26:44","nodeType":"YulFunctionCall","src":"910:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"899:7:44","nodeType":"YulIdentifier","src":"899:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"845:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"871:5:44","nodeType":"YulTypedName","src":"871:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"881:7:44","nodeType":"YulTypedName","src":"881:7:44","type":""}],"src":"845:97:44"},{"body":{"nativeSrc":"990:78:44","nodeType":"YulBlock","src":"990:78:44","statements":[{"body":{"nativeSrc":"1046:16:44","nodeType":"YulBlock","src":"1046:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1055:1:44","nodeType":"YulLiteral","src":"1055:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1058:1:44","nodeType":"YulLiteral","src":"1058:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1048:6:44","nodeType":"YulIdentifier","src":"1048:6:44"},"nativeSrc":"1048:12:44","nodeType":"YulFunctionCall","src":"1048:12:44"},"nativeSrc":"1048:12:44","nodeType":"YulExpressionStatement","src":"1048:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1013:5:44","nodeType":"YulIdentifier","src":"1013:5:44"},{"arguments":[{"name":"value","nativeSrc":"1037:5:44","nodeType":"YulIdentifier","src":"1037:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1020:16:44","nodeType":"YulIdentifier","src":"1020:16:44"},"nativeSrc":"1020:23:44","nodeType":"YulFunctionCall","src":"1020:23:44"}],"functionName":{"name":"eq","nativeSrc":"1010:2:44","nodeType":"YulIdentifier","src":"1010:2:44"},"nativeSrc":"1010:34:44","nodeType":"YulFunctionCall","src":"1010:34:44"}],"functionName":{"name":"iszero","nativeSrc":"1003:6:44","nodeType":"YulIdentifier","src":"1003:6:44"},"nativeSrc":"1003:42:44","nodeType":"YulFunctionCall","src":"1003:42:44"},"nativeSrc":"1000:62:44","nodeType":"YulIf","src":"1000:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"948:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"983:5:44","nodeType":"YulTypedName","src":"983:5:44","type":""}],"src":"948:120:44"},{"body":{"nativeSrc":"1136:79:44","nodeType":"YulBlock","src":"1136:79:44","statements":[{"nativeSrc":"1146:22:44","nodeType":"YulAssignment","src":"1146:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"}],"functionName":{"name":"mload","nativeSrc":"1155:5:44","nodeType":"YulIdentifier","src":"1155:5:44"},"nativeSrc":"1155:13:44","nodeType":"YulFunctionCall","src":"1155:13:44"},"variableNames":[{"name":"value","nativeSrc":"1146:5:44","nodeType":"YulIdentifier","src":"1146:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1203:5:44","nodeType":"YulIdentifier","src":"1203:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"1177:25:44","nodeType":"YulIdentifier","src":"1177:25:44"},"nativeSrc":"1177:32:44","nodeType":"YulFunctionCall","src":"1177:32:44"},"nativeSrc":"1177:32:44","nodeType":"YulExpressionStatement","src":"1177:32:44"}]},"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1074:141:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1114:6:44","nodeType":"YulTypedName","src":"1114:6:44","type":""},{"name":"end","nativeSrc":"1122:3:44","nodeType":"YulTypedName","src":"1122:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1130:5:44","nodeType":"YulTypedName","src":"1130:5:44","type":""}],"src":"1074:141:44"},{"body":{"nativeSrc":"1348:691:44","nodeType":"YulBlock","src":"1348:691:44","statements":[{"body":{"nativeSrc":"1395:83:44","nodeType":"YulBlock","src":"1395:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1397:77:44","nodeType":"YulIdentifier","src":"1397:77:44"},"nativeSrc":"1397:79:44","nodeType":"YulFunctionCall","src":"1397:79:44"},"nativeSrc":"1397:79:44","nodeType":"YulExpressionStatement","src":"1397:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1369:7:44","nodeType":"YulIdentifier","src":"1369:7:44"},{"name":"headStart","nativeSrc":"1378:9:44","nodeType":"YulIdentifier","src":"1378:9:44"}],"functionName":{"name":"sub","nativeSrc":"1365:3:44","nodeType":"YulIdentifier","src":"1365:3:44"},"nativeSrc":"1365:23:44","nodeType":"YulFunctionCall","src":"1365:23:44"},{"kind":"number","nativeSrc":"1390:3:44","nodeType":"YulLiteral","src":"1390:3:44","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"1361:3:44","nodeType":"YulIdentifier","src":"1361:3:44"},"nativeSrc":"1361:33:44","nodeType":"YulFunctionCall","src":"1361:33:44"},"nativeSrc":"1358:120:44","nodeType":"YulIf","src":"1358:120:44"},{"nativeSrc":"1488:128:44","nodeType":"YulBlock","src":"1488:128:44","statements":[{"nativeSrc":"1503:15:44","nodeType":"YulVariableDeclaration","src":"1503:15:44","value":{"kind":"number","nativeSrc":"1517:1:44","nodeType":"YulLiteral","src":"1517:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1507:6:44","nodeType":"YulTypedName","src":"1507:6:44","type":""}]},{"nativeSrc":"1532:74:44","nodeType":"YulAssignment","src":"1532:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1578:9:44","nodeType":"YulIdentifier","src":"1578:9:44"},{"name":"offset","nativeSrc":"1589:6:44","nodeType":"YulIdentifier","src":"1589:6:44"}],"functionName":{"name":"add","nativeSrc":"1574:3:44","nodeType":"YulIdentifier","src":"1574:3:44"},"nativeSrc":"1574:22:44","nodeType":"YulFunctionCall","src":"1574:22:44"},{"name":"dataEnd","nativeSrc":"1598:7:44","nodeType":"YulIdentifier","src":"1598:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1542:31:44","nodeType":"YulIdentifier","src":"1542:31:44"},"nativeSrc":"1542:64:44","nodeType":"YulFunctionCall","src":"1542:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1532:6:44","nodeType":"YulIdentifier","src":"1532:6:44"}]}]},{"nativeSrc":"1626:129:44","nodeType":"YulBlock","src":"1626:129:44","statements":[{"nativeSrc":"1641:16:44","nodeType":"YulVariableDeclaration","src":"1641:16:44","value":{"kind":"number","nativeSrc":"1655:2:44","nodeType":"YulLiteral","src":"1655:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1645:6:44","nodeType":"YulTypedName","src":"1645:6:44","type":""}]},{"nativeSrc":"1671:74:44","nodeType":"YulAssignment","src":"1671:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1717:9:44","nodeType":"YulIdentifier","src":"1717:9:44"},{"name":"offset","nativeSrc":"1728:6:44","nodeType":"YulIdentifier","src":"1728:6:44"}],"functionName":{"name":"add","nativeSrc":"1713:3:44","nodeType":"YulIdentifier","src":"1713:3:44"},"nativeSrc":"1713:22:44","nodeType":"YulFunctionCall","src":"1713:22:44"},{"name":"dataEnd","nativeSrc":"1737:7:44","nodeType":"YulIdentifier","src":"1737:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1681:31:44","nodeType":"YulIdentifier","src":"1681:31:44"},"nativeSrc":"1681:64:44","nodeType":"YulFunctionCall","src":"1681:64:44"},"variableNames":[{"name":"value1","nativeSrc":"1671:6:44","nodeType":"YulIdentifier","src":"1671:6:44"}]}]},{"nativeSrc":"1765:128:44","nodeType":"YulBlock","src":"1765:128:44","statements":[{"nativeSrc":"1780:16:44","nodeType":"YulVariableDeclaration","src":"1780:16:44","value":{"kind":"number","nativeSrc":"1794:2:44","nodeType":"YulLiteral","src":"1794:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"1784:6:44","nodeType":"YulTypedName","src":"1784:6:44","type":""}]},{"nativeSrc":"1810:73:44","nodeType":"YulAssignment","src":"1810:73:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1855:9:44","nodeType":"YulIdentifier","src":"1855:9:44"},{"name":"offset","nativeSrc":"1866:6:44","nodeType":"YulIdentifier","src":"1866:6:44"}],"functionName":{"name":"add","nativeSrc":"1851:3:44","nodeType":"YulIdentifier","src":"1851:3:44"},"nativeSrc":"1851:22:44","nodeType":"YulFunctionCall","src":"1851:22:44"},{"name":"dataEnd","nativeSrc":"1875:7:44","nodeType":"YulIdentifier","src":"1875:7:44"}],"functionName":{"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1820:30:44","nodeType":"YulIdentifier","src":"1820:30:44"},"nativeSrc":"1820:63:44","nodeType":"YulFunctionCall","src":"1820:63:44"},"variableNames":[{"name":"value2","nativeSrc":"1810:6:44","nodeType":"YulIdentifier","src":"1810:6:44"}]}]},{"nativeSrc":"1903:129:44","nodeType":"YulBlock","src":"1903:129:44","statements":[{"nativeSrc":"1918:16:44","nodeType":"YulVariableDeclaration","src":"1918:16:44","value":{"kind":"number","nativeSrc":"1932:2:44","nodeType":"YulLiteral","src":"1932:2:44","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"1922:6:44","nodeType":"YulTypedName","src":"1922:6:44","type":""}]},{"nativeSrc":"1948:74:44","nodeType":"YulAssignment","src":"1948:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1994:9:44","nodeType":"YulIdentifier","src":"1994:9:44"},{"name":"offset","nativeSrc":"2005:6:44","nodeType":"YulIdentifier","src":"2005:6:44"}],"functionName":{"name":"add","nativeSrc":"1990:3:44","nodeType":"YulIdentifier","src":"1990:3:44"},"nativeSrc":"1990:22:44","nodeType":"YulFunctionCall","src":"1990:22:44"},{"name":"dataEnd","nativeSrc":"2014:7:44","nodeType":"YulIdentifier","src":"2014:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1958:31:44","nodeType":"YulIdentifier","src":"1958:31:44"},"nativeSrc":"1958:64:44","nodeType":"YulFunctionCall","src":"1958:64:44"},"variableNames":[{"name":"value3","nativeSrc":"1948:6:44","nodeType":"YulIdentifier","src":"1948:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint48t_address_fromMemory","nativeSrc":"1221:818:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1294:9:44","nodeType":"YulTypedName","src":"1294:9:44","type":""},{"name":"dataEnd","nativeSrc":"1305:7:44","nodeType":"YulTypedName","src":"1305:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1317:6:44","nodeType":"YulTypedName","src":"1317:6:44","type":""},{"name":"value1","nativeSrc":"1325:6:44","nodeType":"YulTypedName","src":"1325:6:44","type":""},{"name":"value2","nativeSrc":"1333:6:44","nodeType":"YulTypedName","src":"1333:6:44","type":""},{"name":"value3","nativeSrc":"1341:6:44","nodeType":"YulTypedName","src":"1341:6:44","type":""}],"src":"1221:818:44"},{"body":{"nativeSrc":"2110:53:44","nodeType":"YulBlock","src":"2110:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2127:3:44","nodeType":"YulIdentifier","src":"2127:3:44"},{"arguments":[{"name":"value","nativeSrc":"2150:5:44","nodeType":"YulIdentifier","src":"2150:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2132:17:44","nodeType":"YulIdentifier","src":"2132:17:44"},"nativeSrc":"2132:24:44","nodeType":"YulFunctionCall","src":"2132:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2120:6:44","nodeType":"YulIdentifier","src":"2120:6:44"},"nativeSrc":"2120:37:44","nodeType":"YulFunctionCall","src":"2120:37:44"},"nativeSrc":"2120:37:44","nodeType":"YulExpressionStatement","src":"2120:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2045:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2098:5:44","nodeType":"YulTypedName","src":"2098:5:44","type":""},{"name":"pos","nativeSrc":"2105:3:44","nodeType":"YulTypedName","src":"2105:3:44","type":""}],"src":"2045:118:44"},{"body":{"nativeSrc":"2267:124:44","nodeType":"YulBlock","src":"2267:124:44","statements":[{"nativeSrc":"2277:26:44","nodeType":"YulAssignment","src":"2277:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2289:9:44","nodeType":"YulIdentifier","src":"2289:9:44"},{"kind":"number","nativeSrc":"2300:2:44","nodeType":"YulLiteral","src":"2300:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2285:3:44","nodeType":"YulIdentifier","src":"2285:3:44"},"nativeSrc":"2285:18:44","nodeType":"YulFunctionCall","src":"2285:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2277:4:44","nodeType":"YulIdentifier","src":"2277:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2357:6:44","nodeType":"YulIdentifier","src":"2357:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2370:9:44","nodeType":"YulIdentifier","src":"2370:9:44"},{"kind":"number","nativeSrc":"2381:1:44","nodeType":"YulLiteral","src":"2381:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2366:3:44","nodeType":"YulIdentifier","src":"2366:3:44"},"nativeSrc":"2366:17:44","nodeType":"YulFunctionCall","src":"2366:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2313:43:44","nodeType":"YulIdentifier","src":"2313:43:44"},"nativeSrc":"2313:71:44","nodeType":"YulFunctionCall","src":"2313:71:44"},"nativeSrc":"2313:71:44","nodeType":"YulExpressionStatement","src":"2313:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2169:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2239:9:44","nodeType":"YulTypedName","src":"2239:9:44","type":""},{"name":"value0","nativeSrc":"2251:6:44","nodeType":"YulTypedName","src":"2251:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2262:4:44","nodeType":"YulTypedName","src":"2262:4:44","type":""}],"src":"2169:222:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint48t_address_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint48_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60c060405234801561001057600080fd5b5060405161239c38038061239c8339818101604052810190610032919061046b565b8282828181600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a95760006040517fc22c80220000000000000000000000000000000000000000000000000000000081526004016100a091906104e1565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100e16000801b8261015860201b60201c565b5050508273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050508373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505050506104fc565b60008060001b830361021957600073ffffffffffffffffffffffffffffffffffffffff1661018a61023160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146101d7576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610229838361025b60201b60201c565b905092915050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061026d838361035860201b60201c565b61034d57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506102ea6103c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610352565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103fa826103cf565b9050919050565b61040a816103ef565b811461041557600080fd5b50565b60008151905061042781610401565b92915050565b600065ffffffffffff82169050919050565b6104488161042d565b811461045357600080fd5b50565b6000815190506104658161043f565b92915050565b60008060008060808587031215610485576104846103ca565b5b600061049387828801610418565b94505060206104a487828801610418565b93505060406104b587828801610456565b92505060606104c687828801610418565b91505092959194509250565b6104db816103ef565b82525050565b60006020820190506104f660008301846104d2565b92915050565b60805160a051611e5161054b6000396000818161068b0152818161094a0152610d17015260008181610479015281816107da0152818161086c01528181610ba70152610c390152611e516000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806384ef8ffc116100c3578063cc8463c81161007c578063cc8463c814610369578063cefc142914610387578063cf6eefb714610391578063d547741f146103b0578063d602b9fd146103cc578063dd738e6c146103d65761014d565b806384ef8ffc146102a45780638da5cb5b146102c257806391d14854146102e0578063a1eda53c14610310578063a217fddf1461032f578063a8c008611461034d5761014d565b80632a3fea62116101155780632a3fea62146101f85780632f2ff15d1461021657806336568abe14610232578063634e93da1461024e578063649a5ec71461026a5780637b103999146102865761014d565b806301ffc9a714610152578063022d63fb14610182578063095f025e146101a05780630aa6220b146101be578063248a9ca3146101c8575b600080fd5b61016c600480360381019061016791906117d8565b6103f2565b6040516101799190611820565b60405180910390f35b61018a61046c565b604051610197919061185c565b60405180910390f35b6101a8610477565b6040516101b591906118f6565b60405180910390f35b6101c661049b565b005b6101e260048036038101906101dd9190611947565b6104b3565b6040516101ef9190611983565b60405180910390f35b6102006104d2565b60405161020d9190611983565b60405180910390f35b610230600480360381019061022b91906119dc565b6104f6565b005b61024c600480360381019061024791906119dc565b610540565b005b61026860048036038101906102639190611a1c565b610655565b005b610284600480360381019061027f9190611a75565b61066f565b005b61028e610689565b60405161029b9190611ac3565b60405180910390f35b6102ac6106ad565b6040516102b99190611aed565b60405180910390f35b6102ca6106d7565b6040516102d79190611aed565b60405180910390f35b6102fa60048036038101906102f591906119dc565b6106e6565b6040516103079190611820565b60405180910390f35b610318610750565b604051610326929190611b08565b60405180910390f35b6103376107b0565b6040516103449190611983565b60405180910390f35b61036760048036038101906103629190611b31565b6107b7565b005b6103716109db565b60405161037e919061185c565b60405180910390f35b61038f610a49565b005b610399610adf565b6040516103a7929190611b71565b60405180910390f35b6103ca60048036038101906103c591906119dc565b610b22565b005b6103d4610b6c565b005b6103f060048036038101906103eb9190611bd8565b610b84565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610465575061046482610dab565b5b9050919050565b600062069780905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b6104a881610e25565b6104b0610e39565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b8203610532576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053c8282610e46565b5050565b6000801b8214801561058457506105556106ad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561064757600080610594610adf565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415806105da57506105d881610e68565b155b806105eb57506105e981610e7d565b155b1561062d57806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610624919061185c565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106518282610e91565b5050565b6000801b61066281610e25565b61066b82610f0c565b5050565b6000801b61067c81610e25565b61068582610f87565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006106e16106ad565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061077381610e68565b8015610785575061078381610e7d565b155b610791576000806107a8565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086857336040517fa90b446100000000000000000000000000000000000000000000000000000000815260040161085f9190611aed565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f99190611c40565b905061090582826106e6565b6109485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161093f929190611c6d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016109a3929190611c6d565b600060405180830381600087803b1580156109bd57600080fd5b505af11580156109d1573d6000803e3d6000fd5b5050505050505050565b6000806002601a9054906101000a900465ffffffffffff1690506109fe81610e68565b8015610a0f5750610a0e81610e7d565b5b610a2d576001601a9054906101000a900465ffffffffffff16610a43565b600260149054906101000a900465ffffffffffff165b91505090565b6000610a53610adf565b5090508073ffffffffffffffffffffffffffffffffffffffff16610a75610fee565b73ffffffffffffffffffffffffffffffffffffffff1614610ad457610a98610fee565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610acb9190611aed565b60405180910390fd5b610adc610ff6565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b8203610b5e576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6882826110c5565b5050565b6000801b610b7981610e25565b610b816110e7565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3557336040517fa90b4461000000000000000000000000000000000000000000000000000000008152600401610c2c9190611aed565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190611c40565b9050610cd282826106e6565b610d155780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610d0c929190611c6d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8686866040518463ffffffff1660e01b8152600401610d7293929190611cb7565b600060405180830381600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e1e5750610e1d826110f4565b5b9050919050565b610e3681610e31610fee565b61115e565b50565b610e446000806111af565b565b610e4f826104b3565b610e5881610e25565b610e62838361129f565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610e99610fee565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610efd576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f07828261136c565b505050565b6000610f166109db565b610f1f426113ef565b610f299190611d1d565b9050610f358282611449565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610f7b919061185c565b60405180910390a25050565b6000610f92826114fc565b610f9b426113ef565b610fa59190611d1d565b9050610fb182826111af565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610fe2929190611b08565b60405180910390a15050565b600033905090565b600080611001610adf565b9150915061100e81610e68565b1580611020575061101e81610e7d565b155b1561106257806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401611059919061185c565b60405180910390fd5b6110766000801b6110716106ad565b61136c565b506110846000801b8361129f565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6110ce826104b3565b6110d781610e25565b6110e1838361136c565b50505050565b6110f2600080611449565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61116882826106e6565b6111ab5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016111a2929190611c6d565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506111d181610e68565b15611250576111df81610e7d565b1561122257600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555061124f565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361135a57600073ffffffffffffffffffffffffffffffffffffffff166112cb6106ad565b73ffffffffffffffffffffffffffffffffffffffff1614611318576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611364838361155b565b905092915050565b60008060001b831480156113b257506113836106ad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156113dd57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6113e7838361164c565b905092915050565b600065ffffffffffff8016821115611441576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611438929190611db8565b60405180910390fd5b819050919050565b6000611453610adf565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506114c581610e68565b156114f7577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806115076109db565b90508065ffffffffffff168365ffffffffffff161161153157828161152c9190611de1565b611553565b6115528365ffffffffffff1661154561046c565b65ffffffffffff1661173e565b5b915050919050565b600061156783836106e6565b61164157600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115de610fee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611646565b600090505b92915050565b600061165883836106e6565b1561173357600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506116d0610fee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611738565b600090505b92915050565b600061174d8284108484611755565b905092915050565b60006117608461176f565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117b581611780565b81146117c057600080fd5b50565b6000813590506117d2816117ac565b92915050565b6000602082840312156117ee576117ed61177b565b5b60006117fc848285016117c3565b91505092915050565b60008115159050919050565b61181a81611805565b82525050565b60006020820190506118356000830184611811565b92915050565b600065ffffffffffff82169050919050565b6118568161183b565b82525050565b6000602082019050611871600083018461184d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006118bc6118b76118b284611877565b611897565b611877565b9050919050565b60006118ce826118a1565b9050919050565b60006118e0826118c3565b9050919050565b6118f0816118d5565b82525050565b600060208201905061190b60008301846118e7565b92915050565b6000819050919050565b61192481611911565b811461192f57600080fd5b50565b6000813590506119418161191b565b92915050565b60006020828403121561195d5761195c61177b565b5b600061196b84828501611932565b91505092915050565b61197d81611911565b82525050565b60006020820190506119986000830184611974565b92915050565b60006119a982611877565b9050919050565b6119b98161199e565b81146119c457600080fd5b50565b6000813590506119d6816119b0565b92915050565b600080604083850312156119f3576119f261177b565b5b6000611a0185828601611932565b9250506020611a12858286016119c7565b9150509250929050565b600060208284031215611a3257611a3161177b565b5b6000611a40848285016119c7565b91505092915050565b611a528161183b565b8114611a5d57600080fd5b50565b600081359050611a6f81611a49565b92915050565b600060208284031215611a8b57611a8a61177b565b5b6000611a9984828501611a60565b91505092915050565b6000611aad826118c3565b9050919050565b611abd81611aa2565b82525050565b6000602082019050611ad86000830184611ab4565b92915050565b611ae78161199e565b82525050565b6000602082019050611b026000830184611ade565b92915050565b6000604082019050611b1d600083018561184d565b611b2a602083018461184d565b9392505050565b60008060408385031215611b4857611b4761177b565b5b6000611b56858286016119c7565b9250506020611b6785828601611932565b9150509250929050565b6000604082019050611b866000830185611ade565b611b93602083018461184d565b9392505050565b6000611ba58261199e565b9050919050565b611bb581611b9a565b8114611bc057600080fd5b50565b600081359050611bd281611bac565b92915050565b600080600060608486031215611bf157611bf061177b565b5b6000611bff868287016119c7565b9350506020611c1086828701611932565b9250506040611c2186828701611bc3565b9150509250925092565b600081519050611c3a816119b0565b92915050565b600060208284031215611c5657611c5561177b565b5b6000611c6484828501611c2b565b91505092915050565b6000604082019050611c826000830185611ade565b611c8f6020830184611974565b9392505050565b6000611ca1826118c3565b9050919050565b611cb181611c96565b82525050565b6000606082019050611ccc6000830186611ade565b611cd96020830185611974565b611ce66040830184611ca8565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d288261183b565b9150611d338361183b565b9250828201905065ffffffffffff811115611d5157611d50611cee565b5b92915050565b6000819050919050565b600060ff82169050919050565b6000611d89611d84611d7f84611d57565b611897565b611d61565b9050919050565b611d9981611d6e565b82525050565b6000819050919050565b611db281611d9f565b82525050565b6000604082019050611dcd6000830185611d90565b611dda6020830184611da9565b9392505050565b6000611dec8261183b565b9150611df78361183b565b9250828203905065ffffffffffff811115611e1557611e14611cee565b5b9291505056fea2646970667358221220d1876682a0029faa45012b63f6e33c43f45fdd5e971193958a65b47631b6915264736f6c634300081c0033","opcodes":"PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x239C CODESIZE SUB DUP1 PUSH2 0x239C DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x46B JUMP JUMPDEST DUP3 DUP3 DUP3 DUP2 DUP2 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA9 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA0 SWAP2 SWAP1 PUSH2 0x4E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1 PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x158 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP POP POP PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x219 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x18A PUSH2 0x231 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x229 DUP4 DUP4 PUSH2 0x25B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26D DUP4 DUP4 PUSH2 0x358 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x34D JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x2EA PUSH2 0x3C2 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x352 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FA DUP3 PUSH2 0x3CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x40A DUP2 PUSH2 0x3EF JUMP JUMPDEST DUP2 EQ PUSH2 0x415 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x427 DUP2 PUSH2 0x401 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x448 DUP2 PUSH2 0x42D JUMP JUMPDEST DUP2 EQ PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x465 DUP2 PUSH2 0x43F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x3CA JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x493 DUP8 DUP3 DUP9 ADD PUSH2 0x418 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x4A4 DUP8 DUP3 DUP9 ADD PUSH2 0x418 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x4B5 DUP8 DUP3 DUP9 ADD PUSH2 0x456 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x4C6 DUP8 DUP3 DUP9 ADD PUSH2 0x418 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x4DB DUP2 PUSH2 0x3EF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4F6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1E51 PUSH2 0x54B PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x68B ADD MSTORE DUP2 DUP2 PUSH2 0x94A ADD MSTORE PUSH2 0xD17 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x479 ADD MSTORE DUP2 DUP2 PUSH2 0x7DA ADD MSTORE DUP2 DUP2 PUSH2 0x86C ADD MSTORE DUP2 DUP2 PUSH2 0xBA7 ADD MSTORE PUSH2 0xC39 ADD MSTORE PUSH2 0x1E51 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 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84EF8FFC GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3D6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x34D JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2A3FEA62 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x286 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x95F025E EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18A PUSH2 0x46C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH2 0x477 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B5 SWAP2 SWAP1 PUSH2 0x18F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C6 PUSH2 0x49B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x4B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EF SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH2 0x4D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x24C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x1A1C JUMP JUMPDEST PUSH2 0x655 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x284 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1A75 JUMP JUMPDEST PUSH2 0x66F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH2 0x689 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CA PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D7 SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x318 PUSH2 0x750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x326 SWAP3 SWAP2 SWAP1 PUSH2 0x1B08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x337 PUSH2 0x7B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x367 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x362 SWAP2 SWAP1 PUSH2 0x1B31 JUMP JUMPDEST PUSH2 0x7B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x371 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38F PUSH2 0xA49 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x399 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP3 SWAP2 SWAP1 PUSH2 0x1B71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0xB22 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3D4 PUSH2 0xB6C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x1BD8 JUMP JUMPDEST PUSH2 0xB84 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x465 JUMPI POP PUSH2 0x464 DUP3 PUSH2 0xDAB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x4A8 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x4B0 PUSH2 0xE39 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x53C DUP3 DUP3 PUSH2 0xE46 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x584 JUMPI POP PUSH2 0x555 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 PUSH2 0x594 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x5DA JUMPI POP PUSH2 0x5D8 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x5EB JUMPI POP PUSH2 0x5E9 DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x62D JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x624 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x651 DUP3 DUP3 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x662 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x66B DUP3 PUSH2 0xF0C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x67C DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x685 DUP3 PUSH2 0xF87 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E1 PUSH2 0x6AD JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x773 DUP2 PUSH2 0xE68 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x785 JUMPI POP PUSH2 0x783 DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x868 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xA90B446100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x85F SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6E296E45 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8F9 SWAP2 SWAP1 PUSH2 0x1C40 JUMP JUMPDEST SWAP1 POP PUSH2 0x905 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x948 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93F SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A3 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x9FE DUP2 PUSH2 0xE68 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA0F JUMPI POP PUSH2 0xA0E DUP2 PUSH2 0xE7D JUMP JUMPDEST JUMPDEST PUSH2 0xA2D JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xA43 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA53 PUSH2 0xADF JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA75 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xAD4 JUMPI PUSH2 0xA98 PUSH2 0xFEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xACB SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADC PUSH2 0xFF6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB68 DUP3 DUP3 PUSH2 0x10C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xB79 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0xB81 PUSH2 0x10E7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC35 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xA90B446100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC2C SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6E296E45 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCC6 SWAP2 SWAP1 PUSH2 0x1C40 JUMP JUMPDEST SWAP1 POP PUSH2 0xCD2 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0xD15 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD72 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xE1E JUMPI POP PUSH2 0xE1D DUP3 PUSH2 0x10F4 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE36 DUP2 PUSH2 0xE31 PUSH2 0xFEE JUMP JUMPDEST PUSH2 0x115E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE44 PUSH1 0x0 DUP1 PUSH2 0x11AF JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xE4F DUP3 PUSH2 0x4B3 JUMP JUMPDEST PUSH2 0xE58 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0xE62 DUP4 DUP4 PUSH2 0x129F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE99 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEFD JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF07 DUP3 DUP3 PUSH2 0x136C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 PUSH2 0x9DB JUMP JUMPDEST PUSH2 0xF1F TIMESTAMP PUSH2 0x13EF JUMP JUMPDEST PUSH2 0xF29 SWAP2 SWAP1 PUSH2 0x1D1D JUMP JUMPDEST SWAP1 POP PUSH2 0xF35 DUP3 DUP3 PUSH2 0x1449 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xF7B SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF92 DUP3 PUSH2 0x14FC JUMP JUMPDEST PUSH2 0xF9B TIMESTAMP PUSH2 0x13EF JUMP JUMPDEST PUSH2 0xFA5 SWAP2 SWAP1 PUSH2 0x1D1D JUMP JUMPDEST SWAP1 POP PUSH2 0xFB1 DUP3 DUP3 PUSH2 0x11AF JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFE2 SWAP3 SWAP2 SWAP1 PUSH2 0x1B08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1001 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x100E DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1020 JUMPI POP PUSH2 0x101E DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1062 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1059 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1076 PUSH1 0x0 DUP1 SHL PUSH2 0x1071 PUSH2 0x6AD JUMP JUMPDEST PUSH2 0x136C JUMP JUMPDEST POP PUSH2 0x1084 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x129F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x10CE DUP3 PUSH2 0x4B3 JUMP JUMPDEST PUSH2 0x10D7 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x10E1 DUP4 DUP4 PUSH2 0x136C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x10F2 PUSH1 0x0 DUP1 PUSH2 0x1449 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1168 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x11AB JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A2 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x11D1 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO PUSH2 0x1250 JUMPI PUSH2 0x11DF DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO PUSH2 0x1222 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x124F JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x135A JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CB PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1318 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1364 DUP4 DUP4 PUSH2 0x155B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x13B2 JUMPI POP PUSH2 0x1383 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x13DD JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x13E7 DUP4 DUP4 PUSH2 0x164C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1441 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1438 SWAP3 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1453 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x14C5 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO PUSH2 0x14F7 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1507 PUSH2 0x9DB JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1531 JUMPI DUP3 DUP2 PUSH2 0x152C SWAP2 SWAP1 PUSH2 0x1DE1 JUMP JUMPDEST PUSH2 0x1553 JUMP JUMPDEST PUSH2 0x1552 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1545 PUSH2 0x46C JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x173E JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1567 DUP4 DUP4 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x1641 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x15DE PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1658 DUP4 DUP4 PUSH2 0x6E6 JUMP JUMPDEST ISZERO PUSH2 0x1733 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x16D0 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1738 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x174D DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1755 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1760 DUP5 PUSH2 0x176F JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B5 DUP2 PUSH2 0x1780 JUMP JUMPDEST DUP2 EQ PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17D2 DUP2 PUSH2 0x17AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FC DUP5 DUP3 DUP6 ADD PUSH2 0x17C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x181A DUP2 PUSH2 0x1805 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1835 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1811 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1856 DUP2 PUSH2 0x183B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1871 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BC PUSH2 0x18B7 PUSH2 0x18B2 DUP5 PUSH2 0x1877 JUMP JUMPDEST PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x1877 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18CE DUP3 PUSH2 0x18A1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18E0 DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F0 DUP2 PUSH2 0x18D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x190B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18E7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1924 DUP2 PUSH2 0x1911 JUMP JUMPDEST DUP2 EQ PUSH2 0x192F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1941 DUP2 PUSH2 0x191B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195D JUMPI PUSH2 0x195C PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x196B DUP5 DUP3 DUP6 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x197D DUP2 PUSH2 0x1911 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1998 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1974 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19A9 DUP3 PUSH2 0x1877 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19B9 DUP2 PUSH2 0x199E JUMP JUMPDEST DUP2 EQ PUSH2 0x19C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19D6 DUP2 PUSH2 0x19B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19F3 JUMPI PUSH2 0x19F2 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A01 DUP6 DUP3 DUP7 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A12 DUP6 DUP3 DUP7 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A32 JUMPI PUSH2 0x1A31 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A40 DUP5 DUP3 DUP6 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A52 DUP2 PUSH2 0x183B JUMP JUMPDEST DUP2 EQ PUSH2 0x1A5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A6F DUP2 PUSH2 0x1A49 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A8B JUMPI PUSH2 0x1A8A PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A99 DUP5 DUP3 DUP6 ADD PUSH2 0x1A60 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAD DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ABD DUP2 PUSH2 0x1AA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1AE7 DUP2 PUSH2 0x199E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B02 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ADE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1B1D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x184D JUMP JUMPDEST PUSH2 0x1B2A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B48 JUMPI PUSH2 0x1B47 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B56 DUP6 DUP3 DUP7 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1B67 DUP6 DUP3 DUP7 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1B86 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1B93 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA5 DUP3 PUSH2 0x199E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB5 DUP2 PUSH2 0x1B9A JUMP JUMPDEST DUP2 EQ PUSH2 0x1BC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BD2 DUP2 PUSH2 0x1BAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1BF1 JUMPI PUSH2 0x1BF0 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1BFF DUP7 DUP3 DUP8 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1C10 DUP7 DUP3 DUP8 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1C21 DUP7 DUP3 DUP8 ADD PUSH2 0x1BC3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C3A DUP2 PUSH2 0x19B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C56 JUMPI PUSH2 0x1C55 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C64 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C82 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1C8F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1974 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CB1 DUP2 PUSH2 0x1C96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1CCC PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1CD9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1974 JUMP JUMPDEST PUSH2 0x1CE6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1CA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D28 DUP3 PUSH2 0x183B JUMP JUMPDEST SWAP2 POP PUSH2 0x1D33 DUP4 PUSH2 0x183B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D51 JUMPI PUSH2 0x1D50 PUSH2 0x1CEE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D89 PUSH2 0x1D84 PUSH2 0x1D7F DUP5 PUSH2 0x1D57 JUMP JUMPDEST PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x1D61 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D99 DUP2 PUSH2 0x1D6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB2 DUP2 PUSH2 0x1D9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D90 JUMP JUMPDEST PUSH2 0x1DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DEC DUP3 PUSH2 0x183B JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF7 DUP4 PUSH2 0x183B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E15 JUMPI PUSH2 0x1E14 PUSH2 0x1CEE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 DUP8 PUSH7 0x82A0029FAA4501 0x2B PUSH4 0xF6E33C43 DELEGATECALL PUSH0 0xDD MCOPY SWAP8 GT SWAP4 SWAP6 DUP11 PUSH6 0xB47631B69152 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"615:2438:38:-:0;;;1388:368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1605:21;1640:13;1667:20;1672:12:32;1686:19;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1762:21:32::1;1717:67;;;;;;;;::::0;::::1;1518:273:::0;;;1736:12:38::1;1712:37;;;;;;;;::::0;::::1;1388:368:::0;;;;615:2438;;5509:370:9;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;88:117:44:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:97::-;881:7;921:14;914:5;910:26;899:37;;845:97;;;:::o;948:120::-;1020:23;1037:5;1020:23;:::i;:::-;1013:5;1010:34;1000:62;;1058:1;1055;1048:12;1000:62;948:120;:::o;1074:141::-;1130:5;1161:6;1155:13;1146:22;;1177:32;1203:5;1177:32;:::i;:::-;1074:141;;;;:::o;1221:818::-;1317:6;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:64;1598:7;1589:6;1578:9;1574:22;1542:64;:::i;:::-;1532:74;;1488:128;1655:2;1681:64;1737:7;1728:6;1717:9;1713:22;1681:64;:::i;:::-;1671:74;;1626:129;1794:2;1820:63;1875:7;1866:6;1855:9;1851:22;1820:63;:::i;:::-;1810:73;;1765:128;1932:2;1958:64;2014:7;2005:6;1994:9;1990:22;1958:64;:::i;:::-;1948:74;;1903:129;1221:818;;;;;;;:::o;2045:118::-;2132:24;2150:5;2132:24;:::i;:::-;2127:3;2120:37;2045:118;;:::o;2169:222::-;2262:4;2300:2;2289:9;2285:18;2277:26;;2313:71;2381:1;2370:9;2366:17;2357:6;2313:71;:::i;:::-;2169:222;;;;:::o;615:2438:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_1222":{"entryPoint":1968,"id":1222,"parameterSlots":0,"returnSlots":0},"@REGISTER_DOMAIN_ROLE_7736":{"entryPoint":1234,"id":7736,"parameterSlots":0,"returnSlots":0},"@_acceptDefaultAdminTransfer_2244":{"entryPoint":4086,"id":2244,"parameterSlots":0,"returnSlots":0},"@_beginDefaultAdminTransfer_2152":{"entryPoint":3852,"id":2152,"parameterSlots":1,"returnSlots":0},"@_cancelDefaultAdminTransfer_2176":{"entryPoint":4327,"id":2176,"parameterSlots":0,"returnSlots":0},"@_changeDefaultAdminDelay_2287":{"entryPoint":3975,"id":2287,"parameterSlots":1,"returnSlots":0},"@_checkRole_1286":{"entryPoint":3621,"id":1286,"parameterSlots":1,"returnSlots":0},"@_checkRole_1307":{"entryPoint":4446,"id":1307,"parameterSlots":2,"returnSlots":0},"@_delayChangeWait_2339":{"entryPoint":5372,"id":2339,"parameterSlots":1,"returnSlots":1},"@_grantRole_1449":{"entryPoint":5467,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":4767,"id":1970,"parameterSlots":2,"returnSlots":1},"@_hasSchedulePassed_2435":{"entryPoint":3709,"id":2435,"parameterSlots":1,"returnSlots":1},"@_isScheduleSet_2421":{"entryPoint":3688,"id":2421,"parameterSlots":1,"returnSlots":1},"@_msgSender_3399":{"entryPoint":4078,"id":3399,"parameterSlots":0,"returnSlots":1},"@_revokeRole_1487":{"entryPoint":5708,"id":1487,"parameterSlots":2,"returnSlots":1},"@_revokeRole_2001":{"entryPoint":4972,"id":2001,"parameterSlots":2,"returnSlots":1},"@_rollbackDefaultAdminDelay_2308":{"entryPoint":3641,"id":2308,"parameterSlots":0,"returnSlots":0},"@_setPendingDefaultAdmin_2369":{"entryPoint":5193,"id":2369,"parameterSlots":2,"returnSlots":0},"@_setPendingDelay_2408":{"entryPoint":4527,"id":2408,"parameterSlots":2,"returnSlots":0},"@acceptDefaultAdminTransfer_2200":{"entryPoint":2633,"id":2200,"parameterSlots":0,"returnSlots":0},"@beginDefaultAdminTransfer_2124":{"entryPoint":1621,"id":2124,"parameterSlots":1,"returnSlots":0},"@cancelDefaultAdminTransfer_2163":{"entryPoint":2924,"id":2163,"parameterSlots":0,"returnSlots":0},"@changeDefaultAdminDelay_2258":{"entryPoint":1647,"id":2258,"parameterSlots":1,"returnSlots":0},"@crossDomainMessanger_7240":{"entryPoint":1143,"id":7240,"parameterSlots":0,"returnSlots":0},"@defaultAdminDelayIncreaseWait_2110":{"entryPoint":1132,"id":2110,"parameterSlots":0,"returnSlots":1},"@defaultAdminDelay_2071":{"entryPoint":2523,"id":2071,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":1709,"id":2035,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_1321":{"entryPoint":1203,"id":1321,"parameterSlots":1,"returnSlots":1},"@grantRole_1340":{"entryPoint":3654,"id":1340,"parameterSlots":2,"returnSlots":0},"@grantRole_1843":{"entryPoint":1270,"id":1843,"parameterSlots":2,"returnSlots":0},"@hasRole_1273":{"entryPoint":1766,"id":1273,"parameterSlots":2,"returnSlots":1},"@min_4003":{"entryPoint":5950,"id":4003,"parameterSlots":2,"returnSlots":1},"@owner_1816":{"entryPoint":1751,"id":1816,"parameterSlots":0,"returnSlots":1},"@pendingDefaultAdminDelay_2101":{"entryPoint":1872,"id":2101,"parameterSlots":0,"returnSlots":2},"@pendingDefaultAdmin_2048":{"entryPoint":2783,"id":2048,"parameterSlots":0,"returnSlots":2},"@registerDomainWithVerifier_7805":{"entryPoint":2948,"id":7805,"parameterSlots":3,"returnSlots":0},"@registerDomain_7782":{"entryPoint":1975,"id":7782,"parameterSlots":2,"returnSlots":0},"@registry_7739":{"entryPoint":1673,"id":7739,"parameterSlots":0,"returnSlots":0},"@renounceRole_1382":{"entryPoint":3729,"id":1382,"parameterSlots":2,"returnSlots":0},"@renounceRole_1931":{"entryPoint":1344,"id":1931,"parameterSlots":2,"returnSlots":0},"@revokeRole_1359":{"entryPoint":4293,"id":1359,"parameterSlots":2,"returnSlots":0},"@revokeRole_1870":{"entryPoint":2850,"id":1870,"parameterSlots":2,"returnSlots":0},"@rollbackDefaultAdminDelay_2298":{"entryPoint":1179,"id":2298,"parameterSlots":0,"returnSlots":0},"@supportsInterface_1255":{"entryPoint":3499,"id":1255,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1806":{"entryPoint":1010,"id":1806,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3755":{"entryPoint":4340,"id":3755,"parameterSlots":1,"returnSlots":1},"@ternary_3965":{"entryPoint":5973,"id":3965,"parameterSlots":3,"returnSlots":1},"@toUint48_6129":{"entryPoint":5103,"id":6129,"parameterSlots":1,"returnSlots":1},"@toUint_7138":{"entryPoint":5999,"id":7138,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":7211,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":6450,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":6083,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IVerifier_$8474":{"entryPoint":7107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48":{"entryPoint":6752,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6684,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":7232,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":6961,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474":{"entryPoint":7128,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":6471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":6620,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":6104,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint48":{"entryPoint":6773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6878,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6161,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":6516,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack":{"entryPoint":6375,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack":{"entryPoint":6836,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack":{"entryPoint":7336,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack":{"entryPoint":7568,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":7593,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint48_to_t_uint48_fromStack":{"entryPoint":6221,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6893,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":7277,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed":{"entryPoint":7351,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed":{"entryPoint":7025,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6176,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":6531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed":{"entryPoint":6390,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed":{"entryPoint":6851,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":7608,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed":{"entryPoint":6236,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed":{"entryPoint":6920,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint48":{"entryPoint":7453,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint48":{"entryPoint":7649,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6558,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6149,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":6417,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":6016,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IVerifier_$8474":{"entryPoint":7066,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_48_by_1":{"entryPoint":7511,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6263,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7583,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":6203,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":7521,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address":{"entryPoint":6357,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISciRegistry_$8112_to_t_address":{"entryPoint":6818,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IVerifier_$8474_to_t_address":{"entryPoint":7318,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_48_by_1_to_t_uint8":{"entryPoint":7534,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":6339,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":6305,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":6295,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":7406,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6011,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6576,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":6427,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":6060,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IVerifier_$8474":{"entryPoint":7084,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":6729,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12457:44","nodeType":"YulBlock","src":"0:12457:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"378:105:44","nodeType":"YulBlock","src":"378:105:44","statements":[{"nativeSrc":"388:89:44","nodeType":"YulAssignment","src":"388:89:44","value":{"arguments":[{"name":"value","nativeSrc":"403:5:44","nodeType":"YulIdentifier","src":"403:5:44"},{"kind":"number","nativeSrc":"410:66:44","nodeType":"YulLiteral","src":"410:66:44","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:44","nodeType":"YulIdentifier","src":"399:3:44"},"nativeSrc":"399:78:44","nodeType":"YulFunctionCall","src":"399:78:44"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:44","nodeType":"YulIdentifier","src":"388:7:44"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:44","nodeType":"YulTypedName","src":"360:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:44","nodeType":"YulTypedName","src":"370:7:44","type":""}],"src":"334:149:44"},{"body":{"nativeSrc":"531:78:44","nodeType":"YulBlock","src":"531:78:44","statements":[{"body":{"nativeSrc":"587:16:44","nodeType":"YulBlock","src":"587:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:44","nodeType":"YulLiteral","src":"596:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:44","nodeType":"YulLiteral","src":"599:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:44","nodeType":"YulIdentifier","src":"589:6:44"},"nativeSrc":"589:12:44","nodeType":"YulFunctionCall","src":"589:12:44"},"nativeSrc":"589:12:44","nodeType":"YulExpressionStatement","src":"589:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:44","nodeType":"YulIdentifier","src":"554:5:44"},{"arguments":[{"name":"value","nativeSrc":"578:5:44","nodeType":"YulIdentifier","src":"578:5:44"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:44","nodeType":"YulIdentifier","src":"561:16:44"},"nativeSrc":"561:23:44","nodeType":"YulFunctionCall","src":"561:23:44"}],"functionName":{"name":"eq","nativeSrc":"551:2:44","nodeType":"YulIdentifier","src":"551:2:44"},"nativeSrc":"551:34:44","nodeType":"YulFunctionCall","src":"551:34:44"}],"functionName":{"name":"iszero","nativeSrc":"544:6:44","nodeType":"YulIdentifier","src":"544:6:44"},"nativeSrc":"544:42:44","nodeType":"YulFunctionCall","src":"544:42:44"},"nativeSrc":"541:62:44","nodeType":"YulIf","src":"541:62:44"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:44","nodeType":"YulTypedName","src":"524:5:44","type":""}],"src":"489:120:44"},{"body":{"nativeSrc":"666:86:44","nodeType":"YulBlock","src":"666:86:44","statements":[{"nativeSrc":"676:29:44","nodeType":"YulAssignment","src":"676:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:44","nodeType":"YulIdentifier","src":"698:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:44","nodeType":"YulIdentifier","src":"685:12:44"},"nativeSrc":"685:20:44","nodeType":"YulFunctionCall","src":"685:20:44"},"variableNames":[{"name":"value","nativeSrc":"676:5:44","nodeType":"YulIdentifier","src":"676:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:44","nodeType":"YulIdentifier","src":"740:5:44"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:44","nodeType":"YulIdentifier","src":"714:25:44"},"nativeSrc":"714:32:44","nodeType":"YulFunctionCall","src":"714:32:44"},"nativeSrc":"714:32:44","nodeType":"YulExpressionStatement","src":"714:32:44"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:44","nodeType":"YulTypedName","src":"644:6:44","type":""},{"name":"end","nativeSrc":"652:3:44","nodeType":"YulTypedName","src":"652:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:44","nodeType":"YulTypedName","src":"660:5:44","type":""}],"src":"615:137:44"},{"body":{"nativeSrc":"823:262:44","nodeType":"YulBlock","src":"823:262:44","statements":[{"body":{"nativeSrc":"869:83:44","nodeType":"YulBlock","src":"869:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:44","nodeType":"YulIdentifier","src":"871:77:44"},"nativeSrc":"871:79:44","nodeType":"YulFunctionCall","src":"871:79:44"},"nativeSrc":"871:79:44","nodeType":"YulExpressionStatement","src":"871:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:44","nodeType":"YulIdentifier","src":"844:7:44"},{"name":"headStart","nativeSrc":"853:9:44","nodeType":"YulIdentifier","src":"853:9:44"}],"functionName":{"name":"sub","nativeSrc":"840:3:44","nodeType":"YulIdentifier","src":"840:3:44"},"nativeSrc":"840:23:44","nodeType":"YulFunctionCall","src":"840:23:44"},{"kind":"number","nativeSrc":"865:2:44","nodeType":"YulLiteral","src":"865:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:44","nodeType":"YulIdentifier","src":"836:3:44"},"nativeSrc":"836:32:44","nodeType":"YulFunctionCall","src":"836:32:44"},"nativeSrc":"833:119:44","nodeType":"YulIf","src":"833:119:44"},{"nativeSrc":"962:116:44","nodeType":"YulBlock","src":"962:116:44","statements":[{"nativeSrc":"977:15:44","nodeType":"YulVariableDeclaration","src":"977:15:44","value":{"kind":"number","nativeSrc":"991:1:44","nodeType":"YulLiteral","src":"991:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:44","nodeType":"YulTypedName","src":"981:6:44","type":""}]},{"nativeSrc":"1006:62:44","nodeType":"YulAssignment","src":"1006:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:44","nodeType":"YulIdentifier","src":"1040:9:44"},{"name":"offset","nativeSrc":"1051:6:44","nodeType":"YulIdentifier","src":"1051:6:44"}],"functionName":{"name":"add","nativeSrc":"1036:3:44","nodeType":"YulIdentifier","src":"1036:3:44"},"nativeSrc":"1036:22:44","nodeType":"YulFunctionCall","src":"1036:22:44"},{"name":"dataEnd","nativeSrc":"1060:7:44","nodeType":"YulIdentifier","src":"1060:7:44"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:44","nodeType":"YulIdentifier","src":"1016:19:44"},"nativeSrc":"1016:52:44","nodeType":"YulFunctionCall","src":"1016:52:44"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:44","nodeType":"YulIdentifier","src":"1006:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:44","nodeType":"YulTypedName","src":"793:9:44","type":""},{"name":"dataEnd","nativeSrc":"804:7:44","nodeType":"YulTypedName","src":"804:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:44","nodeType":"YulTypedName","src":"816:6:44","type":""}],"src":"758:327:44"},{"body":{"nativeSrc":"1133:48:44","nodeType":"YulBlock","src":"1133:48:44","statements":[{"nativeSrc":"1143:32:44","nodeType":"YulAssignment","src":"1143:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:44","nodeType":"YulIdentifier","src":"1168:5:44"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"},"nativeSrc":"1161:13:44","nodeType":"YulFunctionCall","src":"1161:13:44"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:44","nodeType":"YulIdentifier","src":"1154:6:44"},"nativeSrc":"1154:21:44","nodeType":"YulFunctionCall","src":"1154:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:44","nodeType":"YulIdentifier","src":"1143:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:44","nodeType":"YulTypedName","src":"1115:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:44","nodeType":"YulTypedName","src":"1125:7:44","type":""}],"src":"1091:90:44"},{"body":{"nativeSrc":"1246:50:44","nodeType":"YulBlock","src":"1246:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:44","nodeType":"YulIdentifier","src":"1263:3:44"},{"arguments":[{"name":"value","nativeSrc":"1283:5:44","nodeType":"YulIdentifier","src":"1283:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:44","nodeType":"YulIdentifier","src":"1268:14:44"},"nativeSrc":"1268:21:44","nodeType":"YulFunctionCall","src":"1268:21:44"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:44","nodeType":"YulIdentifier","src":"1256:6:44"},"nativeSrc":"1256:34:44","nodeType":"YulFunctionCall","src":"1256:34:44"},"nativeSrc":"1256:34:44","nodeType":"YulExpressionStatement","src":"1256:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:44","nodeType":"YulTypedName","src":"1234:5:44","type":""},{"name":"pos","nativeSrc":"1241:3:44","nodeType":"YulTypedName","src":"1241:3:44","type":""}],"src":"1187:109:44"},{"body":{"nativeSrc":"1394:118:44","nodeType":"YulBlock","src":"1394:118:44","statements":[{"nativeSrc":"1404:26:44","nodeType":"YulAssignment","src":"1404:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:44","nodeType":"YulIdentifier","src":"1416:9:44"},{"kind":"number","nativeSrc":"1427:2:44","nodeType":"YulLiteral","src":"1427:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:44","nodeType":"YulIdentifier","src":"1412:3:44"},"nativeSrc":"1412:18:44","nodeType":"YulFunctionCall","src":"1412:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:44","nodeType":"YulIdentifier","src":"1404:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:44","nodeType":"YulIdentifier","src":"1478:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:44","nodeType":"YulIdentifier","src":"1491:9:44"},{"kind":"number","nativeSrc":"1502:1:44","nodeType":"YulLiteral","src":"1502:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:44","nodeType":"YulIdentifier","src":"1487:3:44"},"nativeSrc":"1487:17:44","nodeType":"YulFunctionCall","src":"1487:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:44","nodeType":"YulIdentifier","src":"1440:37:44"},"nativeSrc":"1440:65:44","nodeType":"YulFunctionCall","src":"1440:65:44"},"nativeSrc":"1440:65:44","nodeType":"YulExpressionStatement","src":"1440:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:44","nodeType":"YulTypedName","src":"1366:9:44","type":""},{"name":"value0","nativeSrc":"1378:6:44","nodeType":"YulTypedName","src":"1378:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:44","nodeType":"YulTypedName","src":"1389:4:44","type":""}],"src":"1302:210:44"},{"body":{"nativeSrc":"1562:53:44","nodeType":"YulBlock","src":"1562:53:44","statements":[{"nativeSrc":"1572:37:44","nodeType":"YulAssignment","src":"1572:37:44","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:44","nodeType":"YulIdentifier","src":"1587:5:44"},{"kind":"number","nativeSrc":"1594:14:44","nodeType":"YulLiteral","src":"1594:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:44","nodeType":"YulIdentifier","src":"1583:3:44"},"nativeSrc":"1583:26:44","nodeType":"YulFunctionCall","src":"1583:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:44","nodeType":"YulIdentifier","src":"1572:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"1518:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:44","nodeType":"YulTypedName","src":"1544:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:44","nodeType":"YulTypedName","src":"1554:7:44","type":""}],"src":"1518:97:44"},{"body":{"nativeSrc":"1684:52:44","nodeType":"YulBlock","src":"1684:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1701:3:44","nodeType":"YulIdentifier","src":"1701:3:44"},{"arguments":[{"name":"value","nativeSrc":"1723:5:44","nodeType":"YulIdentifier","src":"1723:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1706:16:44","nodeType":"YulIdentifier","src":"1706:16:44"},"nativeSrc":"1706:23:44","nodeType":"YulFunctionCall","src":"1706:23:44"}],"functionName":{"name":"mstore","nativeSrc":"1694:6:44","nodeType":"YulIdentifier","src":"1694:6:44"},"nativeSrc":"1694:36:44","nodeType":"YulFunctionCall","src":"1694:36:44"},"nativeSrc":"1694:36:44","nodeType":"YulExpressionStatement","src":"1694:36:44"}]},"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1621:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1672:5:44","nodeType":"YulTypedName","src":"1672:5:44","type":""},{"name":"pos","nativeSrc":"1679:3:44","nodeType":"YulTypedName","src":"1679:3:44","type":""}],"src":"1621:115:44"},{"body":{"nativeSrc":"1838:122:44","nodeType":"YulBlock","src":"1838:122:44","statements":[{"nativeSrc":"1848:26:44","nodeType":"YulAssignment","src":"1848:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1860:9:44","nodeType":"YulIdentifier","src":"1860:9:44"},{"kind":"number","nativeSrc":"1871:2:44","nodeType":"YulLiteral","src":"1871:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1856:3:44","nodeType":"YulIdentifier","src":"1856:3:44"},"nativeSrc":"1856:18:44","nodeType":"YulFunctionCall","src":"1856:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1848:4:44","nodeType":"YulIdentifier","src":"1848:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1926:6:44","nodeType":"YulIdentifier","src":"1926:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1939:9:44","nodeType":"YulIdentifier","src":"1939:9:44"},{"kind":"number","nativeSrc":"1950:1:44","nodeType":"YulLiteral","src":"1950:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1935:3:44","nodeType":"YulIdentifier","src":"1935:3:44"},"nativeSrc":"1935:17:44","nodeType":"YulFunctionCall","src":"1935:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1884:41:44","nodeType":"YulIdentifier","src":"1884:41:44"},"nativeSrc":"1884:69:44","nodeType":"YulFunctionCall","src":"1884:69:44"},"nativeSrc":"1884:69:44","nodeType":"YulExpressionStatement","src":"1884:69:44"}]},"name":"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed","nativeSrc":"1742:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1810:9:44","nodeType":"YulTypedName","src":"1810:9:44","type":""},{"name":"value0","nativeSrc":"1822:6:44","nodeType":"YulTypedName","src":"1822:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1833:4:44","nodeType":"YulTypedName","src":"1833:4:44","type":""}],"src":"1742:218:44"},{"body":{"nativeSrc":"2011:81:44","nodeType":"YulBlock","src":"2011:81:44","statements":[{"nativeSrc":"2021:65:44","nodeType":"YulAssignment","src":"2021:65:44","value":{"arguments":[{"name":"value","nativeSrc":"2036:5:44","nodeType":"YulIdentifier","src":"2036:5:44"},{"kind":"number","nativeSrc":"2043:42:44","nodeType":"YulLiteral","src":"2043:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2032:3:44","nodeType":"YulIdentifier","src":"2032:3:44"},"nativeSrc":"2032:54:44","nodeType":"YulFunctionCall","src":"2032:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2021:7:44","nodeType":"YulIdentifier","src":"2021:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1966:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulTypedName","src":"1993:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2003:7:44","nodeType":"YulTypedName","src":"2003:7:44","type":""}],"src":"1966:126:44"},{"body":{"nativeSrc":"2130:28:44","nodeType":"YulBlock","src":"2130:28:44","statements":[{"nativeSrc":"2140:12:44","nodeType":"YulAssignment","src":"2140:12:44","value":{"name":"value","nativeSrc":"2147:5:44","nodeType":"YulIdentifier","src":"2147:5:44"},"variableNames":[{"name":"ret","nativeSrc":"2140:3:44","nodeType":"YulIdentifier","src":"2140:3:44"}]}]},"name":"identity","nativeSrc":"2098:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2116:5:44","nodeType":"YulTypedName","src":"2116:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2126:3:44","nodeType":"YulTypedName","src":"2126:3:44","type":""}],"src":"2098:60:44"},{"body":{"nativeSrc":"2224:82:44","nodeType":"YulBlock","src":"2224:82:44","statements":[{"nativeSrc":"2234:66:44","nodeType":"YulAssignment","src":"2234:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2292:5:44","nodeType":"YulIdentifier","src":"2292:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2274:17:44","nodeType":"YulIdentifier","src":"2274:17:44"},"nativeSrc":"2274:24:44","nodeType":"YulFunctionCall","src":"2274:24:44"}],"functionName":{"name":"identity","nativeSrc":"2265:8:44","nodeType":"YulIdentifier","src":"2265:8:44"},"nativeSrc":"2265:34:44","nodeType":"YulFunctionCall","src":"2265:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2247:17:44","nodeType":"YulIdentifier","src":"2247:17:44"},"nativeSrc":"2247:53:44","nodeType":"YulFunctionCall","src":"2247:53:44"},"variableNames":[{"name":"converted","nativeSrc":"2234:9:44","nodeType":"YulIdentifier","src":"2234:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2164:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2204:5:44","nodeType":"YulTypedName","src":"2204:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2214:9:44","nodeType":"YulTypedName","src":"2214:9:44","type":""}],"src":"2164:142:44"},{"body":{"nativeSrc":"2372:66:44","nodeType":"YulBlock","src":"2372:66:44","statements":[{"nativeSrc":"2382:50:44","nodeType":"YulAssignment","src":"2382:50:44","value":{"arguments":[{"name":"value","nativeSrc":"2426:5:44","nodeType":"YulIdentifier","src":"2426:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2395:30:44","nodeType":"YulIdentifier","src":"2395:30:44"},"nativeSrc":"2395:37:44","nodeType":"YulFunctionCall","src":"2395:37:44"},"variableNames":[{"name":"converted","nativeSrc":"2382:9:44","nodeType":"YulIdentifier","src":"2382:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2312:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2352:5:44","nodeType":"YulTypedName","src":"2352:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2362:9:44","nodeType":"YulTypedName","src":"2362:9:44","type":""}],"src":"2312:126:44"},{"body":{"nativeSrc":"2534:66:44","nodeType":"YulBlock","src":"2534:66:44","statements":[{"nativeSrc":"2544:50:44","nodeType":"YulAssignment","src":"2544:50:44","value":{"arguments":[{"name":"value","nativeSrc":"2588:5:44","nodeType":"YulIdentifier","src":"2588:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2557:30:44","nodeType":"YulIdentifier","src":"2557:30:44"},"nativeSrc":"2557:37:44","nodeType":"YulFunctionCall","src":"2557:37:44"},"variableNames":[{"name":"converted","nativeSrc":"2544:9:44","nodeType":"YulIdentifier","src":"2544:9:44"}]}]},"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"2444:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2514:5:44","nodeType":"YulTypedName","src":"2514:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2524:9:44","nodeType":"YulTypedName","src":"2524:9:44","type":""}],"src":"2444:156:44"},{"body":{"nativeSrc":"2701:96:44","nodeType":"YulBlock","src":"2701:96:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2718:3:44","nodeType":"YulIdentifier","src":"2718:3:44"},{"arguments":[{"name":"value","nativeSrc":"2784:5:44","nodeType":"YulIdentifier","src":"2784:5:44"}],"functionName":{"name":"convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address","nativeSrc":"2723:60:44","nodeType":"YulIdentifier","src":"2723:60:44"},"nativeSrc":"2723:67:44","nodeType":"YulFunctionCall","src":"2723:67:44"}],"functionName":{"name":"mstore","nativeSrc":"2711:6:44","nodeType":"YulIdentifier","src":"2711:6:44"},"nativeSrc":"2711:80:44","nodeType":"YulFunctionCall","src":"2711:80:44"},"nativeSrc":"2711:80:44","nodeType":"YulExpressionStatement","src":"2711:80:44"}]},"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"2606:191:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2689:5:44","nodeType":"YulTypedName","src":"2689:5:44","type":""},{"name":"pos","nativeSrc":"2696:3:44","nodeType":"YulTypedName","src":"2696:3:44","type":""}],"src":"2606:191:44"},{"body":{"nativeSrc":"2931:154:44","nodeType":"YulBlock","src":"2931:154:44","statements":[{"nativeSrc":"2941:26:44","nodeType":"YulAssignment","src":"2941:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2953:9:44","nodeType":"YulIdentifier","src":"2953:9:44"},{"kind":"number","nativeSrc":"2964:2:44","nodeType":"YulLiteral","src":"2964:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2949:3:44","nodeType":"YulIdentifier","src":"2949:3:44"},"nativeSrc":"2949:18:44","nodeType":"YulFunctionCall","src":"2949:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2941:4:44","nodeType":"YulIdentifier","src":"2941:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3051:6:44","nodeType":"YulIdentifier","src":"3051:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3064:9:44","nodeType":"YulIdentifier","src":"3064:9:44"},{"kind":"number","nativeSrc":"3075:1:44","nodeType":"YulLiteral","src":"3075:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3060:3:44","nodeType":"YulIdentifier","src":"3060:3:44"},"nativeSrc":"3060:17:44","nodeType":"YulFunctionCall","src":"3060:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack","nativeSrc":"2977:73:44","nodeType":"YulIdentifier","src":"2977:73:44"},"nativeSrc":"2977:101:44","nodeType":"YulFunctionCall","src":"2977:101:44"},"nativeSrc":"2977:101:44","nodeType":"YulExpressionStatement","src":"2977:101:44"}]},"name":"abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed","nativeSrc":"2803:282:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2903:9:44","nodeType":"YulTypedName","src":"2903:9:44","type":""},{"name":"value0","nativeSrc":"2915:6:44","nodeType":"YulTypedName","src":"2915:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2926:4:44","nodeType":"YulTypedName","src":"2926:4:44","type":""}],"src":"2803:282:44"},{"body":{"nativeSrc":"3136:32:44","nodeType":"YulBlock","src":"3136:32:44","statements":[{"nativeSrc":"3146:16:44","nodeType":"YulAssignment","src":"3146:16:44","value":{"name":"value","nativeSrc":"3157:5:44","nodeType":"YulIdentifier","src":"3157:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3146:7:44","nodeType":"YulIdentifier","src":"3146:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"3091:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3118:5:44","nodeType":"YulTypedName","src":"3118:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3128:7:44","nodeType":"YulTypedName","src":"3128:7:44","type":""}],"src":"3091:77:44"},{"body":{"nativeSrc":"3217:79:44","nodeType":"YulBlock","src":"3217:79:44","statements":[{"body":{"nativeSrc":"3274:16:44","nodeType":"YulBlock","src":"3274:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3283:1:44","nodeType":"YulLiteral","src":"3283:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3286:1:44","nodeType":"YulLiteral","src":"3286:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3276:6:44","nodeType":"YulIdentifier","src":"3276:6:44"},"nativeSrc":"3276:12:44","nodeType":"YulFunctionCall","src":"3276:12:44"},"nativeSrc":"3276:12:44","nodeType":"YulExpressionStatement","src":"3276:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3240:5:44","nodeType":"YulIdentifier","src":"3240:5:44"},{"arguments":[{"name":"value","nativeSrc":"3265:5:44","nodeType":"YulIdentifier","src":"3265:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"3247:17:44","nodeType":"YulIdentifier","src":"3247:17:44"},"nativeSrc":"3247:24:44","nodeType":"YulFunctionCall","src":"3247:24:44"}],"functionName":{"name":"eq","nativeSrc":"3237:2:44","nodeType":"YulIdentifier","src":"3237:2:44"},"nativeSrc":"3237:35:44","nodeType":"YulFunctionCall","src":"3237:35:44"}],"functionName":{"name":"iszero","nativeSrc":"3230:6:44","nodeType":"YulIdentifier","src":"3230:6:44"},"nativeSrc":"3230:43:44","nodeType":"YulFunctionCall","src":"3230:43:44"},"nativeSrc":"3227:63:44","nodeType":"YulIf","src":"3227:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"3174:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3210:5:44","nodeType":"YulTypedName","src":"3210:5:44","type":""}],"src":"3174:122:44"},{"body":{"nativeSrc":"3354:87:44","nodeType":"YulBlock","src":"3354:87:44","statements":[{"nativeSrc":"3364:29:44","nodeType":"YulAssignment","src":"3364:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3386:6:44","nodeType":"YulIdentifier","src":"3386:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3373:12:44","nodeType":"YulIdentifier","src":"3373:12:44"},"nativeSrc":"3373:20:44","nodeType":"YulFunctionCall","src":"3373:20:44"},"variableNames":[{"name":"value","nativeSrc":"3364:5:44","nodeType":"YulIdentifier","src":"3364:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3429:5:44","nodeType":"YulIdentifier","src":"3429:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"3402:26:44","nodeType":"YulIdentifier","src":"3402:26:44"},"nativeSrc":"3402:33:44","nodeType":"YulFunctionCall","src":"3402:33:44"},"nativeSrc":"3402:33:44","nodeType":"YulExpressionStatement","src":"3402:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"3302:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3332:6:44","nodeType":"YulTypedName","src":"3332:6:44","type":""},{"name":"end","nativeSrc":"3340:3:44","nodeType":"YulTypedName","src":"3340:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3348:5:44","nodeType":"YulTypedName","src":"3348:5:44","type":""}],"src":"3302:139:44"},{"body":{"nativeSrc":"3513:263:44","nodeType":"YulBlock","src":"3513:263:44","statements":[{"body":{"nativeSrc":"3559:83:44","nodeType":"YulBlock","src":"3559:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3561:77:44","nodeType":"YulIdentifier","src":"3561:77:44"},"nativeSrc":"3561:79:44","nodeType":"YulFunctionCall","src":"3561:79:44"},"nativeSrc":"3561:79:44","nodeType":"YulExpressionStatement","src":"3561:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3534:7:44","nodeType":"YulIdentifier","src":"3534:7:44"},{"name":"headStart","nativeSrc":"3543:9:44","nodeType":"YulIdentifier","src":"3543:9:44"}],"functionName":{"name":"sub","nativeSrc":"3530:3:44","nodeType":"YulIdentifier","src":"3530:3:44"},"nativeSrc":"3530:23:44","nodeType":"YulFunctionCall","src":"3530:23:44"},{"kind":"number","nativeSrc":"3555:2:44","nodeType":"YulLiteral","src":"3555:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3526:3:44","nodeType":"YulIdentifier","src":"3526:3:44"},"nativeSrc":"3526:32:44","nodeType":"YulFunctionCall","src":"3526:32:44"},"nativeSrc":"3523:119:44","nodeType":"YulIf","src":"3523:119:44"},{"nativeSrc":"3652:117:44","nodeType":"YulBlock","src":"3652:117:44","statements":[{"nativeSrc":"3667:15:44","nodeType":"YulVariableDeclaration","src":"3667:15:44","value":{"kind":"number","nativeSrc":"3681:1:44","nodeType":"YulLiteral","src":"3681:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3671:6:44","nodeType":"YulTypedName","src":"3671:6:44","type":""}]},{"nativeSrc":"3696:63:44","nodeType":"YulAssignment","src":"3696:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3731:9:44","nodeType":"YulIdentifier","src":"3731:9:44"},{"name":"offset","nativeSrc":"3742:6:44","nodeType":"YulIdentifier","src":"3742:6:44"}],"functionName":{"name":"add","nativeSrc":"3727:3:44","nodeType":"YulIdentifier","src":"3727:3:44"},"nativeSrc":"3727:22:44","nodeType":"YulFunctionCall","src":"3727:22:44"},{"name":"dataEnd","nativeSrc":"3751:7:44","nodeType":"YulIdentifier","src":"3751:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"3706:20:44","nodeType":"YulIdentifier","src":"3706:20:44"},"nativeSrc":"3706:53:44","nodeType":"YulFunctionCall","src":"3706:53:44"},"variableNames":[{"name":"value0","nativeSrc":"3696:6:44","nodeType":"YulIdentifier","src":"3696:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"3447:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3483:9:44","nodeType":"YulTypedName","src":"3483:9:44","type":""},{"name":"dataEnd","nativeSrc":"3494:7:44","nodeType":"YulTypedName","src":"3494:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3506:6:44","nodeType":"YulTypedName","src":"3506:6:44","type":""}],"src":"3447:329:44"},{"body":{"nativeSrc":"3847:53:44","nodeType":"YulBlock","src":"3847:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3864:3:44","nodeType":"YulIdentifier","src":"3864:3:44"},{"arguments":[{"name":"value","nativeSrc":"3887:5:44","nodeType":"YulIdentifier","src":"3887:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"3869:17:44","nodeType":"YulIdentifier","src":"3869:17:44"},"nativeSrc":"3869:24:44","nodeType":"YulFunctionCall","src":"3869:24:44"}],"functionName":{"name":"mstore","nativeSrc":"3857:6:44","nodeType":"YulIdentifier","src":"3857:6:44"},"nativeSrc":"3857:37:44","nodeType":"YulFunctionCall","src":"3857:37:44"},"nativeSrc":"3857:37:44","nodeType":"YulExpressionStatement","src":"3857:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"3782:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3835:5:44","nodeType":"YulTypedName","src":"3835:5:44","type":""},{"name":"pos","nativeSrc":"3842:3:44","nodeType":"YulTypedName","src":"3842:3:44","type":""}],"src":"3782:118:44"},{"body":{"nativeSrc":"4004:124:44","nodeType":"YulBlock","src":"4004:124:44","statements":[{"nativeSrc":"4014:26:44","nodeType":"YulAssignment","src":"4014:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4026:9:44","nodeType":"YulIdentifier","src":"4026:9:44"},{"kind":"number","nativeSrc":"4037:2:44","nodeType":"YulLiteral","src":"4037:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4022:3:44","nodeType":"YulIdentifier","src":"4022:3:44"},"nativeSrc":"4022:18:44","nodeType":"YulFunctionCall","src":"4022:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4014:4:44","nodeType":"YulIdentifier","src":"4014:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4094:6:44","nodeType":"YulIdentifier","src":"4094:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4107:9:44","nodeType":"YulIdentifier","src":"4107:9:44"},{"kind":"number","nativeSrc":"4118:1:44","nodeType":"YulLiteral","src":"4118:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4103:3:44","nodeType":"YulIdentifier","src":"4103:3:44"},"nativeSrc":"4103:17:44","nodeType":"YulFunctionCall","src":"4103:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4050:43:44","nodeType":"YulIdentifier","src":"4050:43:44"},"nativeSrc":"4050:71:44","nodeType":"YulFunctionCall","src":"4050:71:44"},"nativeSrc":"4050:71:44","nodeType":"YulExpressionStatement","src":"4050:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"3906:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3976:9:44","nodeType":"YulTypedName","src":"3976:9:44","type":""},{"name":"value0","nativeSrc":"3988:6:44","nodeType":"YulTypedName","src":"3988:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3999:4:44","nodeType":"YulTypedName","src":"3999:4:44","type":""}],"src":"3906:222:44"},{"body":{"nativeSrc":"4179:51:44","nodeType":"YulBlock","src":"4179:51:44","statements":[{"nativeSrc":"4189:35:44","nodeType":"YulAssignment","src":"4189:35:44","value":{"arguments":[{"name":"value","nativeSrc":"4218:5:44","nodeType":"YulIdentifier","src":"4218:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4200:17:44","nodeType":"YulIdentifier","src":"4200:17:44"},"nativeSrc":"4200:24:44","nodeType":"YulFunctionCall","src":"4200:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"4189:7:44","nodeType":"YulIdentifier","src":"4189:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"4134:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4161:5:44","nodeType":"YulTypedName","src":"4161:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4171:7:44","nodeType":"YulTypedName","src":"4171:7:44","type":""}],"src":"4134:96:44"},{"body":{"nativeSrc":"4279:79:44","nodeType":"YulBlock","src":"4279:79:44","statements":[{"body":{"nativeSrc":"4336:16:44","nodeType":"YulBlock","src":"4336:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4345:1:44","nodeType":"YulLiteral","src":"4345:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"4348:1:44","nodeType":"YulLiteral","src":"4348:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4338:6:44","nodeType":"YulIdentifier","src":"4338:6:44"},"nativeSrc":"4338:12:44","nodeType":"YulFunctionCall","src":"4338:12:44"},"nativeSrc":"4338:12:44","nodeType":"YulExpressionStatement","src":"4338:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4302:5:44","nodeType":"YulIdentifier","src":"4302:5:44"},{"arguments":[{"name":"value","nativeSrc":"4327:5:44","nodeType":"YulIdentifier","src":"4327:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4309:17:44","nodeType":"YulIdentifier","src":"4309:17:44"},"nativeSrc":"4309:24:44","nodeType":"YulFunctionCall","src":"4309:24:44"}],"functionName":{"name":"eq","nativeSrc":"4299:2:44","nodeType":"YulIdentifier","src":"4299:2:44"},"nativeSrc":"4299:35:44","nodeType":"YulFunctionCall","src":"4299:35:44"}],"functionName":{"name":"iszero","nativeSrc":"4292:6:44","nodeType":"YulIdentifier","src":"4292:6:44"},"nativeSrc":"4292:43:44","nodeType":"YulFunctionCall","src":"4292:43:44"},"nativeSrc":"4289:63:44","nodeType":"YulIf","src":"4289:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"4236:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4272:5:44","nodeType":"YulTypedName","src":"4272:5:44","type":""}],"src":"4236:122:44"},{"body":{"nativeSrc":"4416:87:44","nodeType":"YulBlock","src":"4416:87:44","statements":[{"nativeSrc":"4426:29:44","nodeType":"YulAssignment","src":"4426:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"4448:6:44","nodeType":"YulIdentifier","src":"4448:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"4435:12:44","nodeType":"YulIdentifier","src":"4435:12:44"},"nativeSrc":"4435:20:44","nodeType":"YulFunctionCall","src":"4435:20:44"},"variableNames":[{"name":"value","nativeSrc":"4426:5:44","nodeType":"YulIdentifier","src":"4426:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4491:5:44","nodeType":"YulIdentifier","src":"4491:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4464:26:44","nodeType":"YulIdentifier","src":"4464:26:44"},"nativeSrc":"4464:33:44","nodeType":"YulFunctionCall","src":"4464:33:44"},"nativeSrc":"4464:33:44","nodeType":"YulExpressionStatement","src":"4464:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"4364:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4394:6:44","nodeType":"YulTypedName","src":"4394:6:44","type":""},{"name":"end","nativeSrc":"4402:3:44","nodeType":"YulTypedName","src":"4402:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4410:5:44","nodeType":"YulTypedName","src":"4410:5:44","type":""}],"src":"4364:139:44"},{"body":{"nativeSrc":"4592:391:44","nodeType":"YulBlock","src":"4592:391:44","statements":[{"body":{"nativeSrc":"4638:83:44","nodeType":"YulBlock","src":"4638:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4640:77:44","nodeType":"YulIdentifier","src":"4640:77:44"},"nativeSrc":"4640:79:44","nodeType":"YulFunctionCall","src":"4640:79:44"},"nativeSrc":"4640:79:44","nodeType":"YulExpressionStatement","src":"4640:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4613:7:44","nodeType":"YulIdentifier","src":"4613:7:44"},{"name":"headStart","nativeSrc":"4622:9:44","nodeType":"YulIdentifier","src":"4622:9:44"}],"functionName":{"name":"sub","nativeSrc":"4609:3:44","nodeType":"YulIdentifier","src":"4609:3:44"},"nativeSrc":"4609:23:44","nodeType":"YulFunctionCall","src":"4609:23:44"},{"kind":"number","nativeSrc":"4634:2:44","nodeType":"YulLiteral","src":"4634:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4605:3:44","nodeType":"YulIdentifier","src":"4605:3:44"},"nativeSrc":"4605:32:44","nodeType":"YulFunctionCall","src":"4605:32:44"},"nativeSrc":"4602:119:44","nodeType":"YulIf","src":"4602:119:44"},{"nativeSrc":"4731:117:44","nodeType":"YulBlock","src":"4731:117:44","statements":[{"nativeSrc":"4746:15:44","nodeType":"YulVariableDeclaration","src":"4746:15:44","value":{"kind":"number","nativeSrc":"4760:1:44","nodeType":"YulLiteral","src":"4760:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4750:6:44","nodeType":"YulTypedName","src":"4750:6:44","type":""}]},{"nativeSrc":"4775:63:44","nodeType":"YulAssignment","src":"4775:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4810:9:44","nodeType":"YulIdentifier","src":"4810:9:44"},{"name":"offset","nativeSrc":"4821:6:44","nodeType":"YulIdentifier","src":"4821:6:44"}],"functionName":{"name":"add","nativeSrc":"4806:3:44","nodeType":"YulIdentifier","src":"4806:3:44"},"nativeSrc":"4806:22:44","nodeType":"YulFunctionCall","src":"4806:22:44"},{"name":"dataEnd","nativeSrc":"4830:7:44","nodeType":"YulIdentifier","src":"4830:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4785:20:44","nodeType":"YulIdentifier","src":"4785:20:44"},"nativeSrc":"4785:53:44","nodeType":"YulFunctionCall","src":"4785:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4775:6:44","nodeType":"YulIdentifier","src":"4775:6:44"}]}]},{"nativeSrc":"4858:118:44","nodeType":"YulBlock","src":"4858:118:44","statements":[{"nativeSrc":"4873:16:44","nodeType":"YulVariableDeclaration","src":"4873:16:44","value":{"kind":"number","nativeSrc":"4887:2:44","nodeType":"YulLiteral","src":"4887:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4877:6:44","nodeType":"YulTypedName","src":"4877:6:44","type":""}]},{"nativeSrc":"4903:63:44","nodeType":"YulAssignment","src":"4903:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4938:9:44","nodeType":"YulIdentifier","src":"4938:9:44"},{"name":"offset","nativeSrc":"4949:6:44","nodeType":"YulIdentifier","src":"4949:6:44"}],"functionName":{"name":"add","nativeSrc":"4934:3:44","nodeType":"YulIdentifier","src":"4934:3:44"},"nativeSrc":"4934:22:44","nodeType":"YulFunctionCall","src":"4934:22:44"},{"name":"dataEnd","nativeSrc":"4958:7:44","nodeType":"YulIdentifier","src":"4958:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4913:20:44","nodeType":"YulIdentifier","src":"4913:20:44"},"nativeSrc":"4913:53:44","nodeType":"YulFunctionCall","src":"4913:53:44"},"variableNames":[{"name":"value1","nativeSrc":"4903:6:44","nodeType":"YulIdentifier","src":"4903:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"4509:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:44","nodeType":"YulTypedName","src":"4554:9:44","type":""},{"name":"dataEnd","nativeSrc":"4565:7:44","nodeType":"YulTypedName","src":"4565:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4577:6:44","nodeType":"YulTypedName","src":"4577:6:44","type":""},{"name":"value1","nativeSrc":"4585:6:44","nodeType":"YulTypedName","src":"4585:6:44","type":""}],"src":"4509:474:44"},{"body":{"nativeSrc":"5055:263:44","nodeType":"YulBlock","src":"5055:263:44","statements":[{"body":{"nativeSrc":"5101:83:44","nodeType":"YulBlock","src":"5101:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5103:77:44","nodeType":"YulIdentifier","src":"5103:77:44"},"nativeSrc":"5103:79:44","nodeType":"YulFunctionCall","src":"5103:79:44"},"nativeSrc":"5103:79:44","nodeType":"YulExpressionStatement","src":"5103:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5076:7:44","nodeType":"YulIdentifier","src":"5076:7:44"},{"name":"headStart","nativeSrc":"5085:9:44","nodeType":"YulIdentifier","src":"5085:9:44"}],"functionName":{"name":"sub","nativeSrc":"5072:3:44","nodeType":"YulIdentifier","src":"5072:3:44"},"nativeSrc":"5072:23:44","nodeType":"YulFunctionCall","src":"5072:23:44"},{"kind":"number","nativeSrc":"5097:2:44","nodeType":"YulLiteral","src":"5097:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5068:3:44","nodeType":"YulIdentifier","src":"5068:3:44"},"nativeSrc":"5068:32:44","nodeType":"YulFunctionCall","src":"5068:32:44"},"nativeSrc":"5065:119:44","nodeType":"YulIf","src":"5065:119:44"},{"nativeSrc":"5194:117:44","nodeType":"YulBlock","src":"5194:117:44","statements":[{"nativeSrc":"5209:15:44","nodeType":"YulVariableDeclaration","src":"5209:15:44","value":{"kind":"number","nativeSrc":"5223:1:44","nodeType":"YulLiteral","src":"5223:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5213:6:44","nodeType":"YulTypedName","src":"5213:6:44","type":""}]},{"nativeSrc":"5238:63:44","nodeType":"YulAssignment","src":"5238:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5273:9:44","nodeType":"YulIdentifier","src":"5273:9:44"},{"name":"offset","nativeSrc":"5284:6:44","nodeType":"YulIdentifier","src":"5284:6:44"}],"functionName":{"name":"add","nativeSrc":"5269:3:44","nodeType":"YulIdentifier","src":"5269:3:44"},"nativeSrc":"5269:22:44","nodeType":"YulFunctionCall","src":"5269:22:44"},{"name":"dataEnd","nativeSrc":"5293:7:44","nodeType":"YulIdentifier","src":"5293:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5248:20:44","nodeType":"YulIdentifier","src":"5248:20:44"},"nativeSrc":"5248:53:44","nodeType":"YulFunctionCall","src":"5248:53:44"},"variableNames":[{"name":"value0","nativeSrc":"5238:6:44","nodeType":"YulIdentifier","src":"5238:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"4989:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5025:9:44","nodeType":"YulTypedName","src":"5025:9:44","type":""},{"name":"dataEnd","nativeSrc":"5036:7:44","nodeType":"YulTypedName","src":"5036:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5048:6:44","nodeType":"YulTypedName","src":"5048:6:44","type":""}],"src":"4989:329:44"},{"body":{"nativeSrc":"5366:78:44","nodeType":"YulBlock","src":"5366:78:44","statements":[{"body":{"nativeSrc":"5422:16:44","nodeType":"YulBlock","src":"5422:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5431:1:44","nodeType":"YulLiteral","src":"5431:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5434:1:44","nodeType":"YulLiteral","src":"5434:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5424:6:44","nodeType":"YulIdentifier","src":"5424:6:44"},"nativeSrc":"5424:12:44","nodeType":"YulFunctionCall","src":"5424:12:44"},"nativeSrc":"5424:12:44","nodeType":"YulExpressionStatement","src":"5424:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5389:5:44","nodeType":"YulIdentifier","src":"5389:5:44"},{"arguments":[{"name":"value","nativeSrc":"5413:5:44","nodeType":"YulIdentifier","src":"5413:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"5396:16:44","nodeType":"YulIdentifier","src":"5396:16:44"},"nativeSrc":"5396:23:44","nodeType":"YulFunctionCall","src":"5396:23:44"}],"functionName":{"name":"eq","nativeSrc":"5386:2:44","nodeType":"YulIdentifier","src":"5386:2:44"},"nativeSrc":"5386:34:44","nodeType":"YulFunctionCall","src":"5386:34:44"}],"functionName":{"name":"iszero","nativeSrc":"5379:6:44","nodeType":"YulIdentifier","src":"5379:6:44"},"nativeSrc":"5379:42:44","nodeType":"YulFunctionCall","src":"5379:42:44"},"nativeSrc":"5376:62:44","nodeType":"YulIf","src":"5376:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"5324:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5359:5:44","nodeType":"YulTypedName","src":"5359:5:44","type":""}],"src":"5324:120:44"},{"body":{"nativeSrc":"5501:86:44","nodeType":"YulBlock","src":"5501:86:44","statements":[{"nativeSrc":"5511:29:44","nodeType":"YulAssignment","src":"5511:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"5533:6:44","nodeType":"YulIdentifier","src":"5533:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"5520:12:44","nodeType":"YulIdentifier","src":"5520:12:44"},"nativeSrc":"5520:20:44","nodeType":"YulFunctionCall","src":"5520:20:44"},"variableNames":[{"name":"value","nativeSrc":"5511:5:44","nodeType":"YulIdentifier","src":"5511:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5575:5:44","nodeType":"YulIdentifier","src":"5575:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"5549:25:44","nodeType":"YulIdentifier","src":"5549:25:44"},"nativeSrc":"5549:32:44","nodeType":"YulFunctionCall","src":"5549:32:44"},"nativeSrc":"5549:32:44","nodeType":"YulExpressionStatement","src":"5549:32:44"}]},"name":"abi_decode_t_uint48","nativeSrc":"5450:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5479:6:44","nodeType":"YulTypedName","src":"5479:6:44","type":""},{"name":"end","nativeSrc":"5487:3:44","nodeType":"YulTypedName","src":"5487:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5495:5:44","nodeType":"YulTypedName","src":"5495:5:44","type":""}],"src":"5450:137:44"},{"body":{"nativeSrc":"5658:262:44","nodeType":"YulBlock","src":"5658:262:44","statements":[{"body":{"nativeSrc":"5704:83:44","nodeType":"YulBlock","src":"5704:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5706:77:44","nodeType":"YulIdentifier","src":"5706:77:44"},"nativeSrc":"5706:79:44","nodeType":"YulFunctionCall","src":"5706:79:44"},"nativeSrc":"5706:79:44","nodeType":"YulExpressionStatement","src":"5706:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5679:7:44","nodeType":"YulIdentifier","src":"5679:7:44"},{"name":"headStart","nativeSrc":"5688:9:44","nodeType":"YulIdentifier","src":"5688:9:44"}],"functionName":{"name":"sub","nativeSrc":"5675:3:44","nodeType":"YulIdentifier","src":"5675:3:44"},"nativeSrc":"5675:23:44","nodeType":"YulFunctionCall","src":"5675:23:44"},{"kind":"number","nativeSrc":"5700:2:44","nodeType":"YulLiteral","src":"5700:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5671:3:44","nodeType":"YulIdentifier","src":"5671:3:44"},"nativeSrc":"5671:32:44","nodeType":"YulFunctionCall","src":"5671:32:44"},"nativeSrc":"5668:119:44","nodeType":"YulIf","src":"5668:119:44"},{"nativeSrc":"5797:116:44","nodeType":"YulBlock","src":"5797:116:44","statements":[{"nativeSrc":"5812:15:44","nodeType":"YulVariableDeclaration","src":"5812:15:44","value":{"kind":"number","nativeSrc":"5826:1:44","nodeType":"YulLiteral","src":"5826:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5816:6:44","nodeType":"YulTypedName","src":"5816:6:44","type":""}]},{"nativeSrc":"5841:62:44","nodeType":"YulAssignment","src":"5841:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5875:9:44","nodeType":"YulIdentifier","src":"5875:9:44"},{"name":"offset","nativeSrc":"5886:6:44","nodeType":"YulIdentifier","src":"5886:6:44"}],"functionName":{"name":"add","nativeSrc":"5871:3:44","nodeType":"YulIdentifier","src":"5871:3:44"},"nativeSrc":"5871:22:44","nodeType":"YulFunctionCall","src":"5871:22:44"},{"name":"dataEnd","nativeSrc":"5895:7:44","nodeType":"YulIdentifier","src":"5895:7:44"}],"functionName":{"name":"abi_decode_t_uint48","nativeSrc":"5851:19:44","nodeType":"YulIdentifier","src":"5851:19:44"},"nativeSrc":"5851:52:44","nodeType":"YulFunctionCall","src":"5851:52:44"},"variableNames":[{"name":"value0","nativeSrc":"5841:6:44","nodeType":"YulIdentifier","src":"5841:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint48","nativeSrc":"5593:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5628:9:44","nodeType":"YulTypedName","src":"5628:9:44","type":""},{"name":"dataEnd","nativeSrc":"5639:7:44","nodeType":"YulTypedName","src":"5639:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5651:6:44","nodeType":"YulTypedName","src":"5651:6:44","type":""}],"src":"5593:327:44"},{"body":{"nativeSrc":"6007:66:44","nodeType":"YulBlock","src":"6007:66:44","statements":[{"nativeSrc":"6017:50:44","nodeType":"YulAssignment","src":"6017:50:44","value":{"arguments":[{"name":"value","nativeSrc":"6061:5:44","nodeType":"YulIdentifier","src":"6061:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"6030:30:44","nodeType":"YulIdentifier","src":"6030:30:44"},"nativeSrc":"6030:37:44","nodeType":"YulFunctionCall","src":"6030:37:44"},"variableNames":[{"name":"converted","nativeSrc":"6017:9:44","nodeType":"YulIdentifier","src":"6017:9:44"}]}]},"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"5926:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5987:5:44","nodeType":"YulTypedName","src":"5987:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5997:9:44","nodeType":"YulTypedName","src":"5997:9:44","type":""}],"src":"5926:147:44"},{"body":{"nativeSrc":"6165:87:44","nodeType":"YulBlock","src":"6165:87:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6182:3:44","nodeType":"YulIdentifier","src":"6182:3:44"},{"arguments":[{"name":"value","nativeSrc":"6239:5:44","nodeType":"YulIdentifier","src":"6239:5:44"}],"functionName":{"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"6187:51:44","nodeType":"YulIdentifier","src":"6187:51:44"},"nativeSrc":"6187:58:44","nodeType":"YulFunctionCall","src":"6187:58:44"}],"functionName":{"name":"mstore","nativeSrc":"6175:6:44","nodeType":"YulIdentifier","src":"6175:6:44"},"nativeSrc":"6175:71:44","nodeType":"YulFunctionCall","src":"6175:71:44"},"nativeSrc":"6175:71:44","nodeType":"YulExpressionStatement","src":"6175:71:44"}]},"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"6079:173:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6153:5:44","nodeType":"YulTypedName","src":"6153:5:44","type":""},{"name":"pos","nativeSrc":"6160:3:44","nodeType":"YulTypedName","src":"6160:3:44","type":""}],"src":"6079:173:44"},{"body":{"nativeSrc":"6377:145:44","nodeType":"YulBlock","src":"6377:145:44","statements":[{"nativeSrc":"6387:26:44","nodeType":"YulAssignment","src":"6387:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6399:9:44","nodeType":"YulIdentifier","src":"6399:9:44"},{"kind":"number","nativeSrc":"6410:2:44","nodeType":"YulLiteral","src":"6410:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6395:3:44","nodeType":"YulIdentifier","src":"6395:3:44"},"nativeSrc":"6395:18:44","nodeType":"YulFunctionCall","src":"6395:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6387:4:44","nodeType":"YulIdentifier","src":"6387:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6488:6:44","nodeType":"YulIdentifier","src":"6488:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6501:9:44","nodeType":"YulIdentifier","src":"6501:9:44"},{"kind":"number","nativeSrc":"6512:1:44","nodeType":"YulLiteral","src":"6512:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6497:3:44","nodeType":"YulIdentifier","src":"6497:3:44"},"nativeSrc":"6497:17:44","nodeType":"YulFunctionCall","src":"6497:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"6423:64:44","nodeType":"YulIdentifier","src":"6423:64:44"},"nativeSrc":"6423:92:44","nodeType":"YulFunctionCall","src":"6423:92:44"},"nativeSrc":"6423:92:44","nodeType":"YulExpressionStatement","src":"6423:92:44"}]},"name":"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed","nativeSrc":"6258:264:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6349:9:44","nodeType":"YulTypedName","src":"6349:9:44","type":""},{"name":"value0","nativeSrc":"6361:6:44","nodeType":"YulTypedName","src":"6361:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6372:4:44","nodeType":"YulTypedName","src":"6372:4:44","type":""}],"src":"6258:264:44"},{"body":{"nativeSrc":"6593:53:44","nodeType":"YulBlock","src":"6593:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6610:3:44","nodeType":"YulIdentifier","src":"6610:3:44"},{"arguments":[{"name":"value","nativeSrc":"6633:5:44","nodeType":"YulIdentifier","src":"6633:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6615:17:44","nodeType":"YulIdentifier","src":"6615:17:44"},"nativeSrc":"6615:24:44","nodeType":"YulFunctionCall","src":"6615:24:44"}],"functionName":{"name":"mstore","nativeSrc":"6603:6:44","nodeType":"YulIdentifier","src":"6603:6:44"},"nativeSrc":"6603:37:44","nodeType":"YulFunctionCall","src":"6603:37:44"},"nativeSrc":"6603:37:44","nodeType":"YulExpressionStatement","src":"6603:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6528:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6581:5:44","nodeType":"YulTypedName","src":"6581:5:44","type":""},{"name":"pos","nativeSrc":"6588:3:44","nodeType":"YulTypedName","src":"6588:3:44","type":""}],"src":"6528:118:44"},{"body":{"nativeSrc":"6750:124:44","nodeType":"YulBlock","src":"6750:124:44","statements":[{"nativeSrc":"6760:26:44","nodeType":"YulAssignment","src":"6760:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6772:9:44","nodeType":"YulIdentifier","src":"6772:9:44"},{"kind":"number","nativeSrc":"6783:2:44","nodeType":"YulLiteral","src":"6783:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6768:3:44","nodeType":"YulIdentifier","src":"6768:3:44"},"nativeSrc":"6768:18:44","nodeType":"YulFunctionCall","src":"6768:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6760:4:44","nodeType":"YulIdentifier","src":"6760:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6840:6:44","nodeType":"YulIdentifier","src":"6840:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6853:9:44","nodeType":"YulIdentifier","src":"6853:9:44"},{"kind":"number","nativeSrc":"6864:1:44","nodeType":"YulLiteral","src":"6864:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6849:3:44","nodeType":"YulIdentifier","src":"6849:3:44"},"nativeSrc":"6849:17:44","nodeType":"YulFunctionCall","src":"6849:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6796:43:44","nodeType":"YulIdentifier","src":"6796:43:44"},"nativeSrc":"6796:71:44","nodeType":"YulFunctionCall","src":"6796:71:44"},"nativeSrc":"6796:71:44","nodeType":"YulExpressionStatement","src":"6796:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6652:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6722:9:44","nodeType":"YulTypedName","src":"6722:9:44","type":""},{"name":"value0","nativeSrc":"6734:6:44","nodeType":"YulTypedName","src":"6734:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6745:4:44","nodeType":"YulTypedName","src":"6745:4:44","type":""}],"src":"6652:222:44"},{"body":{"nativeSrc":"7002:202:44","nodeType":"YulBlock","src":"7002:202:44","statements":[{"nativeSrc":"7012:26:44","nodeType":"YulAssignment","src":"7012:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7024:9:44","nodeType":"YulIdentifier","src":"7024:9:44"},{"kind":"number","nativeSrc":"7035:2:44","nodeType":"YulLiteral","src":"7035:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7020:3:44","nodeType":"YulIdentifier","src":"7020:3:44"},"nativeSrc":"7020:18:44","nodeType":"YulFunctionCall","src":"7020:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7012:4:44","nodeType":"YulIdentifier","src":"7012:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7090:6:44","nodeType":"YulIdentifier","src":"7090:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7103:9:44","nodeType":"YulIdentifier","src":"7103:9:44"},{"kind":"number","nativeSrc":"7114:1:44","nodeType":"YulLiteral","src":"7114:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7099:3:44","nodeType":"YulIdentifier","src":"7099:3:44"},"nativeSrc":"7099:17:44","nodeType":"YulFunctionCall","src":"7099:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7048:41:44","nodeType":"YulIdentifier","src":"7048:41:44"},"nativeSrc":"7048:69:44","nodeType":"YulFunctionCall","src":"7048:69:44"},"nativeSrc":"7048:69:44","nodeType":"YulExpressionStatement","src":"7048:69:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7169:6:44","nodeType":"YulIdentifier","src":"7169:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7182:9:44","nodeType":"YulIdentifier","src":"7182:9:44"},{"kind":"number","nativeSrc":"7193:2:44","nodeType":"YulLiteral","src":"7193:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7178:3:44","nodeType":"YulIdentifier","src":"7178:3:44"},"nativeSrc":"7178:18:44","nodeType":"YulFunctionCall","src":"7178:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7127:41:44","nodeType":"YulIdentifier","src":"7127:41:44"},"nativeSrc":"7127:70:44","nodeType":"YulFunctionCall","src":"7127:70:44"},"nativeSrc":"7127:70:44","nodeType":"YulExpressionStatement","src":"7127:70:44"}]},"name":"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed","nativeSrc":"6880:324:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6966:9:44","nodeType":"YulTypedName","src":"6966:9:44","type":""},{"name":"value1","nativeSrc":"6978:6:44","nodeType":"YulTypedName","src":"6978:6:44","type":""},{"name":"value0","nativeSrc":"6986:6:44","nodeType":"YulTypedName","src":"6986:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6997:4:44","nodeType":"YulTypedName","src":"6997:4:44","type":""}],"src":"6880:324:44"},{"body":{"nativeSrc":"7293:391:44","nodeType":"YulBlock","src":"7293:391:44","statements":[{"body":{"nativeSrc":"7339:83:44","nodeType":"YulBlock","src":"7339:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7341:77:44","nodeType":"YulIdentifier","src":"7341:77:44"},"nativeSrc":"7341:79:44","nodeType":"YulFunctionCall","src":"7341:79:44"},"nativeSrc":"7341:79:44","nodeType":"YulExpressionStatement","src":"7341:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7314:7:44","nodeType":"YulIdentifier","src":"7314:7:44"},{"name":"headStart","nativeSrc":"7323:9:44","nodeType":"YulIdentifier","src":"7323:9:44"}],"functionName":{"name":"sub","nativeSrc":"7310:3:44","nodeType":"YulIdentifier","src":"7310:3:44"},"nativeSrc":"7310:23:44","nodeType":"YulFunctionCall","src":"7310:23:44"},{"kind":"number","nativeSrc":"7335:2:44","nodeType":"YulLiteral","src":"7335:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7306:3:44","nodeType":"YulIdentifier","src":"7306:3:44"},"nativeSrc":"7306:32:44","nodeType":"YulFunctionCall","src":"7306:32:44"},"nativeSrc":"7303:119:44","nodeType":"YulIf","src":"7303:119:44"},{"nativeSrc":"7432:117:44","nodeType":"YulBlock","src":"7432:117:44","statements":[{"nativeSrc":"7447:15:44","nodeType":"YulVariableDeclaration","src":"7447:15:44","value":{"kind":"number","nativeSrc":"7461:1:44","nodeType":"YulLiteral","src":"7461:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7451:6:44","nodeType":"YulTypedName","src":"7451:6:44","type":""}]},{"nativeSrc":"7476:63:44","nodeType":"YulAssignment","src":"7476:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7511:9:44","nodeType":"YulIdentifier","src":"7511:9:44"},{"name":"offset","nativeSrc":"7522:6:44","nodeType":"YulIdentifier","src":"7522:6:44"}],"functionName":{"name":"add","nativeSrc":"7507:3:44","nodeType":"YulIdentifier","src":"7507:3:44"},"nativeSrc":"7507:22:44","nodeType":"YulFunctionCall","src":"7507:22:44"},{"name":"dataEnd","nativeSrc":"7531:7:44","nodeType":"YulIdentifier","src":"7531:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7486:20:44","nodeType":"YulIdentifier","src":"7486:20:44"},"nativeSrc":"7486:53:44","nodeType":"YulFunctionCall","src":"7486:53:44"},"variableNames":[{"name":"value0","nativeSrc":"7476:6:44","nodeType":"YulIdentifier","src":"7476:6:44"}]}]},{"nativeSrc":"7559:118:44","nodeType":"YulBlock","src":"7559:118:44","statements":[{"nativeSrc":"7574:16:44","nodeType":"YulVariableDeclaration","src":"7574:16:44","value":{"kind":"number","nativeSrc":"7588:2:44","nodeType":"YulLiteral","src":"7588:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7578:6:44","nodeType":"YulTypedName","src":"7578:6:44","type":""}]},{"nativeSrc":"7604:63:44","nodeType":"YulAssignment","src":"7604:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7639:9:44","nodeType":"YulIdentifier","src":"7639:9:44"},{"name":"offset","nativeSrc":"7650:6:44","nodeType":"YulIdentifier","src":"7650:6:44"}],"functionName":{"name":"add","nativeSrc":"7635:3:44","nodeType":"YulIdentifier","src":"7635:3:44"},"nativeSrc":"7635:22:44","nodeType":"YulFunctionCall","src":"7635:22:44"},{"name":"dataEnd","nativeSrc":"7659:7:44","nodeType":"YulIdentifier","src":"7659:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7614:20:44","nodeType":"YulIdentifier","src":"7614:20:44"},"nativeSrc":"7614:53:44","nodeType":"YulFunctionCall","src":"7614:53:44"},"variableNames":[{"name":"value1","nativeSrc":"7604:6:44","nodeType":"YulIdentifier","src":"7604:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"7210:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7255:9:44","nodeType":"YulTypedName","src":"7255:9:44","type":""},{"name":"dataEnd","nativeSrc":"7266:7:44","nodeType":"YulTypedName","src":"7266:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7278:6:44","nodeType":"YulTypedName","src":"7278:6:44","type":""},{"name":"value1","nativeSrc":"7286:6:44","nodeType":"YulTypedName","src":"7286:6:44","type":""}],"src":"7210:474:44"},{"body":{"nativeSrc":"7814:204:44","nodeType":"YulBlock","src":"7814:204:44","statements":[{"nativeSrc":"7824:26:44","nodeType":"YulAssignment","src":"7824:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7836:9:44","nodeType":"YulIdentifier","src":"7836:9:44"},{"kind":"number","nativeSrc":"7847:2:44","nodeType":"YulLiteral","src":"7847:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7832:3:44","nodeType":"YulIdentifier","src":"7832:3:44"},"nativeSrc":"7832:18:44","nodeType":"YulFunctionCall","src":"7832:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7824:4:44","nodeType":"YulIdentifier","src":"7824:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7904:6:44","nodeType":"YulIdentifier","src":"7904:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7917:9:44","nodeType":"YulIdentifier","src":"7917:9:44"},{"kind":"number","nativeSrc":"7928:1:44","nodeType":"YulLiteral","src":"7928:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7913:3:44","nodeType":"YulIdentifier","src":"7913:3:44"},"nativeSrc":"7913:17:44","nodeType":"YulFunctionCall","src":"7913:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7860:43:44","nodeType":"YulIdentifier","src":"7860:43:44"},"nativeSrc":"7860:71:44","nodeType":"YulFunctionCall","src":"7860:71:44"},"nativeSrc":"7860:71:44","nodeType":"YulExpressionStatement","src":"7860:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7983:6:44","nodeType":"YulIdentifier","src":"7983:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7996:9:44","nodeType":"YulIdentifier","src":"7996:9:44"},{"kind":"number","nativeSrc":"8007:2:44","nodeType":"YulLiteral","src":"8007:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7992:3:44","nodeType":"YulIdentifier","src":"7992:3:44"},"nativeSrc":"7992:18:44","nodeType":"YulFunctionCall","src":"7992:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7941:41:44","nodeType":"YulIdentifier","src":"7941:41:44"},"nativeSrc":"7941:70:44","nodeType":"YulFunctionCall","src":"7941:70:44"},"nativeSrc":"7941:70:44","nodeType":"YulExpressionStatement","src":"7941:70:44"}]},"name":"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed","nativeSrc":"7690:328:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7778:9:44","nodeType":"YulTypedName","src":"7778:9:44","type":""},{"name":"value1","nativeSrc":"7790:6:44","nodeType":"YulTypedName","src":"7790:6:44","type":""},{"name":"value0","nativeSrc":"7798:6:44","nodeType":"YulTypedName","src":"7798:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7809:4:44","nodeType":"YulTypedName","src":"7809:4:44","type":""}],"src":"7690:328:44"},{"body":{"nativeSrc":"8087:51:44","nodeType":"YulBlock","src":"8087:51:44","statements":[{"nativeSrc":"8097:35:44","nodeType":"YulAssignment","src":"8097:35:44","value":{"arguments":[{"name":"value","nativeSrc":"8126:5:44","nodeType":"YulIdentifier","src":"8126:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8108:17:44","nodeType":"YulIdentifier","src":"8108:17:44"},"nativeSrc":"8108:24:44","nodeType":"YulFunctionCall","src":"8108:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"8097:7:44","nodeType":"YulIdentifier","src":"8097:7:44"}]}]},"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"8024:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8069:5:44","nodeType":"YulTypedName","src":"8069:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8079:7:44","nodeType":"YulTypedName","src":"8079:7:44","type":""}],"src":"8024:114:44"},{"body":{"nativeSrc":"8205:97:44","nodeType":"YulBlock","src":"8205:97:44","statements":[{"body":{"nativeSrc":"8280:16:44","nodeType":"YulBlock","src":"8280:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8289:1:44","nodeType":"YulLiteral","src":"8289:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"8292:1:44","nodeType":"YulLiteral","src":"8292:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8282:6:44","nodeType":"YulIdentifier","src":"8282:6:44"},"nativeSrc":"8282:12:44","nodeType":"YulFunctionCall","src":"8282:12:44"},"nativeSrc":"8282:12:44","nodeType":"YulExpressionStatement","src":"8282:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8228:5:44","nodeType":"YulIdentifier","src":"8228:5:44"},{"arguments":[{"name":"value","nativeSrc":"8271:5:44","nodeType":"YulIdentifier","src":"8271:5:44"}],"functionName":{"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"8235:35:44","nodeType":"YulIdentifier","src":"8235:35:44"},"nativeSrc":"8235:42:44","nodeType":"YulFunctionCall","src":"8235:42:44"}],"functionName":{"name":"eq","nativeSrc":"8225:2:44","nodeType":"YulIdentifier","src":"8225:2:44"},"nativeSrc":"8225:53:44","nodeType":"YulFunctionCall","src":"8225:53:44"}],"functionName":{"name":"iszero","nativeSrc":"8218:6:44","nodeType":"YulIdentifier","src":"8218:6:44"},"nativeSrc":"8218:61:44","nodeType":"YulFunctionCall","src":"8218:61:44"},"nativeSrc":"8215:81:44","nodeType":"YulIf","src":"8215:81:44"}]},"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"8144:158:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8198:5:44","nodeType":"YulTypedName","src":"8198:5:44","type":""}],"src":"8144:158:44"},{"body":{"nativeSrc":"8378:105:44","nodeType":"YulBlock","src":"8378:105:44","statements":[{"nativeSrc":"8388:29:44","nodeType":"YulAssignment","src":"8388:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"8410:6:44","nodeType":"YulIdentifier","src":"8410:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"8397:12:44","nodeType":"YulIdentifier","src":"8397:12:44"},"nativeSrc":"8397:20:44","nodeType":"YulFunctionCall","src":"8397:20:44"},"variableNames":[{"name":"value","nativeSrc":"8388:5:44","nodeType":"YulIdentifier","src":"8388:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8471:5:44","nodeType":"YulIdentifier","src":"8471:5:44"}],"functionName":{"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"8426:44:44","nodeType":"YulIdentifier","src":"8426:44:44"},"nativeSrc":"8426:51:44","nodeType":"YulFunctionCall","src":"8426:51:44"},"nativeSrc":"8426:51:44","nodeType":"YulExpressionStatement","src":"8426:51:44"}]},"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"8308:175:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8356:6:44","nodeType":"YulTypedName","src":"8356:6:44","type":""},{"name":"end","nativeSrc":"8364:3:44","nodeType":"YulTypedName","src":"8364:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8372:5:44","nodeType":"YulTypedName","src":"8372:5:44","type":""}],"src":"8308:175:44"},{"body":{"nativeSrc":"8607:537:44","nodeType":"YulBlock","src":"8607:537:44","statements":[{"body":{"nativeSrc":"8653:83:44","nodeType":"YulBlock","src":"8653:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8655:77:44","nodeType":"YulIdentifier","src":"8655:77:44"},"nativeSrc":"8655:79:44","nodeType":"YulFunctionCall","src":"8655:79:44"},"nativeSrc":"8655:79:44","nodeType":"YulExpressionStatement","src":"8655:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8628:7:44","nodeType":"YulIdentifier","src":"8628:7:44"},{"name":"headStart","nativeSrc":"8637:9:44","nodeType":"YulIdentifier","src":"8637:9:44"}],"functionName":{"name":"sub","nativeSrc":"8624:3:44","nodeType":"YulIdentifier","src":"8624:3:44"},"nativeSrc":"8624:23:44","nodeType":"YulFunctionCall","src":"8624:23:44"},{"kind":"number","nativeSrc":"8649:2:44","nodeType":"YulLiteral","src":"8649:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"8620:3:44","nodeType":"YulIdentifier","src":"8620:3:44"},"nativeSrc":"8620:32:44","nodeType":"YulFunctionCall","src":"8620:32:44"},"nativeSrc":"8617:119:44","nodeType":"YulIf","src":"8617:119:44"},{"nativeSrc":"8746:117:44","nodeType":"YulBlock","src":"8746:117:44","statements":[{"nativeSrc":"8761:15:44","nodeType":"YulVariableDeclaration","src":"8761:15:44","value":{"kind":"number","nativeSrc":"8775:1:44","nodeType":"YulLiteral","src":"8775:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8765:6:44","nodeType":"YulTypedName","src":"8765:6:44","type":""}]},{"nativeSrc":"8790:63:44","nodeType":"YulAssignment","src":"8790:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8825:9:44","nodeType":"YulIdentifier","src":"8825:9:44"},{"name":"offset","nativeSrc":"8836:6:44","nodeType":"YulIdentifier","src":"8836:6:44"}],"functionName":{"name":"add","nativeSrc":"8821:3:44","nodeType":"YulIdentifier","src":"8821:3:44"},"nativeSrc":"8821:22:44","nodeType":"YulFunctionCall","src":"8821:22:44"},{"name":"dataEnd","nativeSrc":"8845:7:44","nodeType":"YulIdentifier","src":"8845:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8800:20:44","nodeType":"YulIdentifier","src":"8800:20:44"},"nativeSrc":"8800:53:44","nodeType":"YulFunctionCall","src":"8800:53:44"},"variableNames":[{"name":"value0","nativeSrc":"8790:6:44","nodeType":"YulIdentifier","src":"8790:6:44"}]}]},{"nativeSrc":"8873:118:44","nodeType":"YulBlock","src":"8873:118:44","statements":[{"nativeSrc":"8888:16:44","nodeType":"YulVariableDeclaration","src":"8888:16:44","value":{"kind":"number","nativeSrc":"8902:2:44","nodeType":"YulLiteral","src":"8902:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8892:6:44","nodeType":"YulTypedName","src":"8892:6:44","type":""}]},{"nativeSrc":"8918:63:44","nodeType":"YulAssignment","src":"8918:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8953:9:44","nodeType":"YulIdentifier","src":"8953:9:44"},{"name":"offset","nativeSrc":"8964:6:44","nodeType":"YulIdentifier","src":"8964:6:44"}],"functionName":{"name":"add","nativeSrc":"8949:3:44","nodeType":"YulIdentifier","src":"8949:3:44"},"nativeSrc":"8949:22:44","nodeType":"YulFunctionCall","src":"8949:22:44"},{"name":"dataEnd","nativeSrc":"8973:7:44","nodeType":"YulIdentifier","src":"8973:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"8928:20:44","nodeType":"YulIdentifier","src":"8928:20:44"},"nativeSrc":"8928:53:44","nodeType":"YulFunctionCall","src":"8928:53:44"},"variableNames":[{"name":"value1","nativeSrc":"8918:6:44","nodeType":"YulIdentifier","src":"8918:6:44"}]}]},{"nativeSrc":"9001:136:44","nodeType":"YulBlock","src":"9001:136:44","statements":[{"nativeSrc":"9016:16:44","nodeType":"YulVariableDeclaration","src":"9016:16:44","value":{"kind":"number","nativeSrc":"9030:2:44","nodeType":"YulLiteral","src":"9030:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9020:6:44","nodeType":"YulTypedName","src":"9020:6:44","type":""}]},{"nativeSrc":"9046:81:44","nodeType":"YulAssignment","src":"9046:81:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9099:9:44","nodeType":"YulIdentifier","src":"9099:9:44"},{"name":"offset","nativeSrc":"9110:6:44","nodeType":"YulIdentifier","src":"9110:6:44"}],"functionName":{"name":"add","nativeSrc":"9095:3:44","nodeType":"YulIdentifier","src":"9095:3:44"},"nativeSrc":"9095:22:44","nodeType":"YulFunctionCall","src":"9095:22:44"},{"name":"dataEnd","nativeSrc":"9119:7:44","nodeType":"YulIdentifier","src":"9119:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"9056:38:44","nodeType":"YulIdentifier","src":"9056:38:44"},"nativeSrc":"9056:71:44","nodeType":"YulFunctionCall","src":"9056:71:44"},"variableNames":[{"name":"value2","nativeSrc":"9046:6:44","nodeType":"YulIdentifier","src":"9046:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474","nativeSrc":"8489:655:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8561:9:44","nodeType":"YulTypedName","src":"8561:9:44","type":""},{"name":"dataEnd","nativeSrc":"8572:7:44","nodeType":"YulTypedName","src":"8572:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8584:6:44","nodeType":"YulTypedName","src":"8584:6:44","type":""},{"name":"value1","nativeSrc":"8592:6:44","nodeType":"YulTypedName","src":"8592:6:44","type":""},{"name":"value2","nativeSrc":"8600:6:44","nodeType":"YulTypedName","src":"8600:6:44","type":""}],"src":"8489:655:44"},{"body":{"nativeSrc":"9213:80:44","nodeType":"YulBlock","src":"9213:80:44","statements":[{"nativeSrc":"9223:22:44","nodeType":"YulAssignment","src":"9223:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"9238:6:44","nodeType":"YulIdentifier","src":"9238:6:44"}],"functionName":{"name":"mload","nativeSrc":"9232:5:44","nodeType":"YulIdentifier","src":"9232:5:44"},"nativeSrc":"9232:13:44","nodeType":"YulFunctionCall","src":"9232:13:44"},"variableNames":[{"name":"value","nativeSrc":"9223:5:44","nodeType":"YulIdentifier","src":"9223:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9281:5:44","nodeType":"YulIdentifier","src":"9281:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"9254:26:44","nodeType":"YulIdentifier","src":"9254:26:44"},"nativeSrc":"9254:33:44","nodeType":"YulFunctionCall","src":"9254:33:44"},"nativeSrc":"9254:33:44","nodeType":"YulExpressionStatement","src":"9254:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"9150:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9191:6:44","nodeType":"YulTypedName","src":"9191:6:44","type":""},{"name":"end","nativeSrc":"9199:3:44","nodeType":"YulTypedName","src":"9199:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9207:5:44","nodeType":"YulTypedName","src":"9207:5:44","type":""}],"src":"9150:143:44"},{"body":{"nativeSrc":"9376:274:44","nodeType":"YulBlock","src":"9376:274:44","statements":[{"body":{"nativeSrc":"9422:83:44","nodeType":"YulBlock","src":"9422:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9424:77:44","nodeType":"YulIdentifier","src":"9424:77:44"},"nativeSrc":"9424:79:44","nodeType":"YulFunctionCall","src":"9424:79:44"},"nativeSrc":"9424:79:44","nodeType":"YulExpressionStatement","src":"9424:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9397:7:44","nodeType":"YulIdentifier","src":"9397:7:44"},{"name":"headStart","nativeSrc":"9406:9:44","nodeType":"YulIdentifier","src":"9406:9:44"}],"functionName":{"name":"sub","nativeSrc":"9393:3:44","nodeType":"YulIdentifier","src":"9393:3:44"},"nativeSrc":"9393:23:44","nodeType":"YulFunctionCall","src":"9393:23:44"},{"kind":"number","nativeSrc":"9418:2:44","nodeType":"YulLiteral","src":"9418:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9389:3:44","nodeType":"YulIdentifier","src":"9389:3:44"},"nativeSrc":"9389:32:44","nodeType":"YulFunctionCall","src":"9389:32:44"},"nativeSrc":"9386:119:44","nodeType":"YulIf","src":"9386:119:44"},{"nativeSrc":"9515:128:44","nodeType":"YulBlock","src":"9515:128:44","statements":[{"nativeSrc":"9530:15:44","nodeType":"YulVariableDeclaration","src":"9530:15:44","value":{"kind":"number","nativeSrc":"9544:1:44","nodeType":"YulLiteral","src":"9544:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9534:6:44","nodeType":"YulTypedName","src":"9534:6:44","type":""}]},{"nativeSrc":"9559:74:44","nodeType":"YulAssignment","src":"9559:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9605:9:44","nodeType":"YulIdentifier","src":"9605:9:44"},{"name":"offset","nativeSrc":"9616:6:44","nodeType":"YulIdentifier","src":"9616:6:44"}],"functionName":{"name":"add","nativeSrc":"9601:3:44","nodeType":"YulIdentifier","src":"9601:3:44"},"nativeSrc":"9601:22:44","nodeType":"YulFunctionCall","src":"9601:22:44"},{"name":"dataEnd","nativeSrc":"9625:7:44","nodeType":"YulIdentifier","src":"9625:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"9569:31:44","nodeType":"YulIdentifier","src":"9569:31:44"},"nativeSrc":"9569:64:44","nodeType":"YulFunctionCall","src":"9569:64:44"},"variableNames":[{"name":"value0","nativeSrc":"9559:6:44","nodeType":"YulIdentifier","src":"9559:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"9299:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9346:9:44","nodeType":"YulTypedName","src":"9346:9:44","type":""},{"name":"dataEnd","nativeSrc":"9357:7:44","nodeType":"YulTypedName","src":"9357:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9369:6:44","nodeType":"YulTypedName","src":"9369:6:44","type":""}],"src":"9299:351:44"},{"body":{"nativeSrc":"9782:206:44","nodeType":"YulBlock","src":"9782:206:44","statements":[{"nativeSrc":"9792:26:44","nodeType":"YulAssignment","src":"9792:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"9804:9:44","nodeType":"YulIdentifier","src":"9804:9:44"},{"kind":"number","nativeSrc":"9815:2:44","nodeType":"YulLiteral","src":"9815:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9800:3:44","nodeType":"YulIdentifier","src":"9800:3:44"},"nativeSrc":"9800:18:44","nodeType":"YulFunctionCall","src":"9800:18:44"},"variableNames":[{"name":"tail","nativeSrc":"9792:4:44","nodeType":"YulIdentifier","src":"9792:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9872:6:44","nodeType":"YulIdentifier","src":"9872:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9885:9:44","nodeType":"YulIdentifier","src":"9885:9:44"},{"kind":"number","nativeSrc":"9896:1:44","nodeType":"YulLiteral","src":"9896:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9881:3:44","nodeType":"YulIdentifier","src":"9881:3:44"},"nativeSrc":"9881:17:44","nodeType":"YulFunctionCall","src":"9881:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9828:43:44","nodeType":"YulIdentifier","src":"9828:43:44"},"nativeSrc":"9828:71:44","nodeType":"YulFunctionCall","src":"9828:71:44"},"nativeSrc":"9828:71:44","nodeType":"YulExpressionStatement","src":"9828:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9953:6:44","nodeType":"YulIdentifier","src":"9953:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9966:9:44","nodeType":"YulIdentifier","src":"9966:9:44"},{"kind":"number","nativeSrc":"9977:2:44","nodeType":"YulLiteral","src":"9977:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9962:3:44","nodeType":"YulIdentifier","src":"9962:3:44"},"nativeSrc":"9962:18:44","nodeType":"YulFunctionCall","src":"9962:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"9909:43:44","nodeType":"YulIdentifier","src":"9909:43:44"},"nativeSrc":"9909:72:44","nodeType":"YulFunctionCall","src":"9909:72:44"},"nativeSrc":"9909:72:44","nodeType":"YulExpressionStatement","src":"9909:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"9656:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9746:9:44","nodeType":"YulTypedName","src":"9746:9:44","type":""},{"name":"value1","nativeSrc":"9758:6:44","nodeType":"YulTypedName","src":"9758:6:44","type":""},{"name":"value0","nativeSrc":"9766:6:44","nodeType":"YulTypedName","src":"9766:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9777:4:44","nodeType":"YulTypedName","src":"9777:4:44","type":""}],"src":"9656:332:44"},{"body":{"nativeSrc":"10072:66:44","nodeType":"YulBlock","src":"10072:66:44","statements":[{"nativeSrc":"10082:50:44","nodeType":"YulAssignment","src":"10082:50:44","value":{"arguments":[{"name":"value","nativeSrc":"10126:5:44","nodeType":"YulIdentifier","src":"10126:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"10095:30:44","nodeType":"YulIdentifier","src":"10095:30:44"},"nativeSrc":"10095:37:44","nodeType":"YulFunctionCall","src":"10095:37:44"},"variableNames":[{"name":"converted","nativeSrc":"10082:9:44","nodeType":"YulIdentifier","src":"10082:9:44"}]}]},"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"9994:144:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10052:5:44","nodeType":"YulTypedName","src":"10052:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"10062:9:44","nodeType":"YulTypedName","src":"10062:9:44","type":""}],"src":"9994:144:44"},{"body":{"nativeSrc":"10227:84:44","nodeType":"YulBlock","src":"10227:84:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10244:3:44","nodeType":"YulIdentifier","src":"10244:3:44"},{"arguments":[{"name":"value","nativeSrc":"10298:5:44","nodeType":"YulIdentifier","src":"10298:5:44"}],"functionName":{"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"10249:48:44","nodeType":"YulIdentifier","src":"10249:48:44"},"nativeSrc":"10249:55:44","nodeType":"YulFunctionCall","src":"10249:55:44"}],"functionName":{"name":"mstore","nativeSrc":"10237:6:44","nodeType":"YulIdentifier","src":"10237:6:44"},"nativeSrc":"10237:68:44","nodeType":"YulFunctionCall","src":"10237:68:44"},"nativeSrc":"10237:68:44","nodeType":"YulExpressionStatement","src":"10237:68:44"}]},"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"10144:167:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10215:5:44","nodeType":"YulTypedName","src":"10215:5:44","type":""},{"name":"pos","nativeSrc":"10222:3:44","nodeType":"YulTypedName","src":"10222:3:44","type":""}],"src":"10144:167:44"},{"body":{"nativeSrc":"10489:306:44","nodeType":"YulBlock","src":"10489:306:44","statements":[{"nativeSrc":"10499:26:44","nodeType":"YulAssignment","src":"10499:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"10511:9:44","nodeType":"YulIdentifier","src":"10511:9:44"},{"kind":"number","nativeSrc":"10522:2:44","nodeType":"YulLiteral","src":"10522:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10507:3:44","nodeType":"YulIdentifier","src":"10507:3:44"},"nativeSrc":"10507:18:44","nodeType":"YulFunctionCall","src":"10507:18:44"},"variableNames":[{"name":"tail","nativeSrc":"10499:4:44","nodeType":"YulIdentifier","src":"10499:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10579:6:44","nodeType":"YulIdentifier","src":"10579:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"10592:9:44","nodeType":"YulIdentifier","src":"10592:9:44"},{"kind":"number","nativeSrc":"10603:1:44","nodeType":"YulLiteral","src":"10603:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10588:3:44","nodeType":"YulIdentifier","src":"10588:3:44"},"nativeSrc":"10588:17:44","nodeType":"YulFunctionCall","src":"10588:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10535:43:44","nodeType":"YulIdentifier","src":"10535:43:44"},"nativeSrc":"10535:71:44","nodeType":"YulFunctionCall","src":"10535:71:44"},"nativeSrc":"10535:71:44","nodeType":"YulExpressionStatement","src":"10535:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"10660:6:44","nodeType":"YulIdentifier","src":"10660:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"10673:9:44","nodeType":"YulIdentifier","src":"10673:9:44"},{"kind":"number","nativeSrc":"10684:2:44","nodeType":"YulLiteral","src":"10684:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10669:3:44","nodeType":"YulIdentifier","src":"10669:3:44"},"nativeSrc":"10669:18:44","nodeType":"YulFunctionCall","src":"10669:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"10616:43:44","nodeType":"YulIdentifier","src":"10616:43:44"},"nativeSrc":"10616:72:44","nodeType":"YulFunctionCall","src":"10616:72:44"},"nativeSrc":"10616:72:44","nodeType":"YulExpressionStatement","src":"10616:72:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"10760:6:44","nodeType":"YulIdentifier","src":"10760:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"10773:9:44","nodeType":"YulIdentifier","src":"10773:9:44"},{"kind":"number","nativeSrc":"10784:2:44","nodeType":"YulLiteral","src":"10784:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10769:3:44","nodeType":"YulIdentifier","src":"10769:3:44"},"nativeSrc":"10769:18:44","nodeType":"YulFunctionCall","src":"10769:18:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"10698:61:44","nodeType":"YulIdentifier","src":"10698:61:44"},"nativeSrc":"10698:90:44","nodeType":"YulFunctionCall","src":"10698:90:44"},"nativeSrc":"10698:90:44","nodeType":"YulExpressionStatement","src":"10698:90:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_t_address__fromStack_reversed","nativeSrc":"10317:478:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10445:9:44","nodeType":"YulTypedName","src":"10445:9:44","type":""},{"name":"value2","nativeSrc":"10457:6:44","nodeType":"YulTypedName","src":"10457:6:44","type":""},{"name":"value1","nativeSrc":"10465:6:44","nodeType":"YulTypedName","src":"10465:6:44","type":""},{"name":"value0","nativeSrc":"10473:6:44","nodeType":"YulTypedName","src":"10473:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10484:4:44","nodeType":"YulTypedName","src":"10484:4:44","type":""}],"src":"10317:478:44"},{"body":{"nativeSrc":"10829:152:44","nodeType":"YulBlock","src":"10829:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10846:1:44","nodeType":"YulLiteral","src":"10846:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"10849:77:44","nodeType":"YulLiteral","src":"10849:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10839:6:44","nodeType":"YulIdentifier","src":"10839:6:44"},"nativeSrc":"10839:88:44","nodeType":"YulFunctionCall","src":"10839:88:44"},"nativeSrc":"10839:88:44","nodeType":"YulExpressionStatement","src":"10839:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10943:1:44","nodeType":"YulLiteral","src":"10943:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"10946:4:44","nodeType":"YulLiteral","src":"10946:4:44","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10936:6:44","nodeType":"YulIdentifier","src":"10936:6:44"},"nativeSrc":"10936:15:44","nodeType":"YulFunctionCall","src":"10936:15:44"},"nativeSrc":"10936:15:44","nodeType":"YulExpressionStatement","src":"10936:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10967:1:44","nodeType":"YulLiteral","src":"10967:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"10970:4:44","nodeType":"YulLiteral","src":"10970:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10960:6:44","nodeType":"YulIdentifier","src":"10960:6:44"},"nativeSrc":"10960:15:44","nodeType":"YulFunctionCall","src":"10960:15:44"},"nativeSrc":"10960:15:44","nodeType":"YulExpressionStatement","src":"10960:15:44"}]},"name":"panic_error_0x11","nativeSrc":"10801:180:44","nodeType":"YulFunctionDefinition","src":"10801:180:44"},{"body":{"nativeSrc":"11030:158:44","nodeType":"YulBlock","src":"11030:158:44","statements":[{"nativeSrc":"11040:24:44","nodeType":"YulAssignment","src":"11040:24:44","value":{"arguments":[{"name":"x","nativeSrc":"11062:1:44","nodeType":"YulIdentifier","src":"11062:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"11045:16:44","nodeType":"YulIdentifier","src":"11045:16:44"},"nativeSrc":"11045:19:44","nodeType":"YulFunctionCall","src":"11045:19:44"},"variableNames":[{"name":"x","nativeSrc":"11040:1:44","nodeType":"YulIdentifier","src":"11040:1:44"}]},{"nativeSrc":"11073:24:44","nodeType":"YulAssignment","src":"11073:24:44","value":{"arguments":[{"name":"y","nativeSrc":"11095:1:44","nodeType":"YulIdentifier","src":"11095:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"11078:16:44","nodeType":"YulIdentifier","src":"11078:16:44"},"nativeSrc":"11078:19:44","nodeType":"YulFunctionCall","src":"11078:19:44"},"variableNames":[{"name":"y","nativeSrc":"11073:1:44","nodeType":"YulIdentifier","src":"11073:1:44"}]},{"nativeSrc":"11106:16:44","nodeType":"YulAssignment","src":"11106:16:44","value":{"arguments":[{"name":"x","nativeSrc":"11117:1:44","nodeType":"YulIdentifier","src":"11117:1:44"},{"name":"y","nativeSrc":"11120:1:44","nodeType":"YulIdentifier","src":"11120:1:44"}],"functionName":{"name":"add","nativeSrc":"11113:3:44","nodeType":"YulIdentifier","src":"11113:3:44"},"nativeSrc":"11113:9:44","nodeType":"YulFunctionCall","src":"11113:9:44"},"variableNames":[{"name":"sum","nativeSrc":"11106:3:44","nodeType":"YulIdentifier","src":"11106:3:44"}]},{"body":{"nativeSrc":"11159:22:44","nodeType":"YulBlock","src":"11159:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11161:16:44","nodeType":"YulIdentifier","src":"11161:16:44"},"nativeSrc":"11161:18:44","nodeType":"YulFunctionCall","src":"11161:18:44"},"nativeSrc":"11161:18:44","nodeType":"YulExpressionStatement","src":"11161:18:44"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"11138:3:44","nodeType":"YulIdentifier","src":"11138:3:44"},{"kind":"number","nativeSrc":"11143:14:44","nodeType":"YulLiteral","src":"11143:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11135:2:44","nodeType":"YulIdentifier","src":"11135:2:44"},"nativeSrc":"11135:23:44","nodeType":"YulFunctionCall","src":"11135:23:44"},"nativeSrc":"11132:49:44","nodeType":"YulIf","src":"11132:49:44"}]},"name":"checked_add_t_uint48","nativeSrc":"10987:201:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"11017:1:44","nodeType":"YulTypedName","src":"11017:1:44","type":""},{"name":"y","nativeSrc":"11020:1:44","nodeType":"YulTypedName","src":"11020:1:44","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"11026:3:44","nodeType":"YulTypedName","src":"11026:3:44","type":""}],"src":"10987:201:44"},{"body":{"nativeSrc":"11248:32:44","nodeType":"YulBlock","src":"11248:32:44","statements":[{"nativeSrc":"11258:16:44","nodeType":"YulAssignment","src":"11258:16:44","value":{"name":"value","nativeSrc":"11269:5:44","nodeType":"YulIdentifier","src":"11269:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"11258:7:44","nodeType":"YulIdentifier","src":"11258:7:44"}]}]},"name":"cleanup_t_rational_48_by_1","nativeSrc":"11194:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11230:5:44","nodeType":"YulTypedName","src":"11230:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11240:7:44","nodeType":"YulTypedName","src":"11240:7:44","type":""}],"src":"11194:86:44"},{"body":{"nativeSrc":"11329:43:44","nodeType":"YulBlock","src":"11329:43:44","statements":[{"nativeSrc":"11339:27:44","nodeType":"YulAssignment","src":"11339:27:44","value":{"arguments":[{"name":"value","nativeSrc":"11354:5:44","nodeType":"YulIdentifier","src":"11354:5:44"},{"kind":"number","nativeSrc":"11361:4:44","nodeType":"YulLiteral","src":"11361:4:44","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"11350:3:44","nodeType":"YulIdentifier","src":"11350:3:44"},"nativeSrc":"11350:16:44","nodeType":"YulFunctionCall","src":"11350:16:44"},"variableNames":[{"name":"cleaned","nativeSrc":"11339:7:44","nodeType":"YulIdentifier","src":"11339:7:44"}]}]},"name":"cleanup_t_uint8","nativeSrc":"11286:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11311:5:44","nodeType":"YulTypedName","src":"11311:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11321:7:44","nodeType":"YulTypedName","src":"11321:7:44","type":""}],"src":"11286:86:44"},{"body":{"nativeSrc":"11445:89:44","nodeType":"YulBlock","src":"11445:89:44","statements":[{"nativeSrc":"11455:73:44","nodeType":"YulAssignment","src":"11455:73:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11520:5:44","nodeType":"YulIdentifier","src":"11520:5:44"}],"functionName":{"name":"cleanup_t_rational_48_by_1","nativeSrc":"11493:26:44","nodeType":"YulIdentifier","src":"11493:26:44"},"nativeSrc":"11493:33:44","nodeType":"YulFunctionCall","src":"11493:33:44"}],"functionName":{"name":"identity","nativeSrc":"11484:8:44","nodeType":"YulIdentifier","src":"11484:8:44"},"nativeSrc":"11484:43:44","nodeType":"YulFunctionCall","src":"11484:43:44"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"11468:15:44","nodeType":"YulIdentifier","src":"11468:15:44"},"nativeSrc":"11468:60:44","nodeType":"YulFunctionCall","src":"11468:60:44"},"variableNames":[{"name":"converted","nativeSrc":"11455:9:44","nodeType":"YulIdentifier","src":"11455:9:44"}]}]},"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"11378:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11425:5:44","nodeType":"YulTypedName","src":"11425:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"11435:9:44","nodeType":"YulTypedName","src":"11435:9:44","type":""}],"src":"11378:156:44"},{"body":{"nativeSrc":"11612:73:44","nodeType":"YulBlock","src":"11612:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11629:3:44","nodeType":"YulIdentifier","src":"11629:3:44"},{"arguments":[{"name":"value","nativeSrc":"11672:5:44","nodeType":"YulIdentifier","src":"11672:5:44"}],"functionName":{"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"11634:37:44","nodeType":"YulIdentifier","src":"11634:37:44"},"nativeSrc":"11634:44:44","nodeType":"YulFunctionCall","src":"11634:44:44"}],"functionName":{"name":"mstore","nativeSrc":"11622:6:44","nodeType":"YulIdentifier","src":"11622:6:44"},"nativeSrc":"11622:57:44","nodeType":"YulFunctionCall","src":"11622:57:44"},"nativeSrc":"11622:57:44","nodeType":"YulExpressionStatement","src":"11622:57:44"}]},"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"11540:145:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11600:5:44","nodeType":"YulTypedName","src":"11600:5:44","type":""},{"name":"pos","nativeSrc":"11607:3:44","nodeType":"YulTypedName","src":"11607:3:44","type":""}],"src":"11540:145:44"},{"body":{"nativeSrc":"11736:32:44","nodeType":"YulBlock","src":"11736:32:44","statements":[{"nativeSrc":"11746:16:44","nodeType":"YulAssignment","src":"11746:16:44","value":{"name":"value","nativeSrc":"11757:5:44","nodeType":"YulIdentifier","src":"11757:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"11746:7:44","nodeType":"YulIdentifier","src":"11746:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"11691:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11718:5:44","nodeType":"YulTypedName","src":"11718:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11728:7:44","nodeType":"YulTypedName","src":"11728:7:44","type":""}],"src":"11691:77:44"},{"body":{"nativeSrc":"11839:53:44","nodeType":"YulBlock","src":"11839:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11856:3:44","nodeType":"YulIdentifier","src":"11856:3:44"},{"arguments":[{"name":"value","nativeSrc":"11879:5:44","nodeType":"YulIdentifier","src":"11879:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11861:17:44","nodeType":"YulIdentifier","src":"11861:17:44"},"nativeSrc":"11861:24:44","nodeType":"YulFunctionCall","src":"11861:24:44"}],"functionName":{"name":"mstore","nativeSrc":"11849:6:44","nodeType":"YulIdentifier","src":"11849:6:44"},"nativeSrc":"11849:37:44","nodeType":"YulFunctionCall","src":"11849:37:44"},"nativeSrc":"11849:37:44","nodeType":"YulExpressionStatement","src":"11849:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11774:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11827:5:44","nodeType":"YulTypedName","src":"11827:5:44","type":""},{"name":"pos","nativeSrc":"11834:3:44","nodeType":"YulTypedName","src":"11834:3:44","type":""}],"src":"11774:118:44"},{"body":{"nativeSrc":"12031:213:44","nodeType":"YulBlock","src":"12031:213:44","statements":[{"nativeSrc":"12041:26:44","nodeType":"YulAssignment","src":"12041:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"12053:9:44","nodeType":"YulIdentifier","src":"12053:9:44"},{"kind":"number","nativeSrc":"12064:2:44","nodeType":"YulLiteral","src":"12064:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12049:3:44","nodeType":"YulIdentifier","src":"12049:3:44"},"nativeSrc":"12049:18:44","nodeType":"YulFunctionCall","src":"12049:18:44"},"variableNames":[{"name":"tail","nativeSrc":"12041:4:44","nodeType":"YulIdentifier","src":"12041:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12128:6:44","nodeType":"YulIdentifier","src":"12128:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12141:9:44","nodeType":"YulIdentifier","src":"12141:9:44"},{"kind":"number","nativeSrc":"12152:1:44","nodeType":"YulLiteral","src":"12152:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12137:3:44","nodeType":"YulIdentifier","src":"12137:3:44"},"nativeSrc":"12137:17:44","nodeType":"YulFunctionCall","src":"12137:17:44"}],"functionName":{"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"12077:50:44","nodeType":"YulIdentifier","src":"12077:50:44"},"nativeSrc":"12077:78:44","nodeType":"YulFunctionCall","src":"12077:78:44"},"nativeSrc":"12077:78:44","nodeType":"YulExpressionStatement","src":"12077:78:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12209:6:44","nodeType":"YulIdentifier","src":"12209:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12222:9:44","nodeType":"YulIdentifier","src":"12222:9:44"},{"kind":"number","nativeSrc":"12233:2:44","nodeType":"YulLiteral","src":"12233:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12218:3:44","nodeType":"YulIdentifier","src":"12218:3:44"},"nativeSrc":"12218:18:44","nodeType":"YulFunctionCall","src":"12218:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12165:43:44","nodeType":"YulIdentifier","src":"12165:43:44"},"nativeSrc":"12165:72:44","nodeType":"YulFunctionCall","src":"12165:72:44"},"nativeSrc":"12165:72:44","nodeType":"YulExpressionStatement","src":"12165:72:44"}]},"name":"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed","nativeSrc":"11898:346:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11995:9:44","nodeType":"YulTypedName","src":"11995:9:44","type":""},{"name":"value1","nativeSrc":"12007:6:44","nodeType":"YulTypedName","src":"12007:6:44","type":""},{"name":"value0","nativeSrc":"12015:6:44","nodeType":"YulTypedName","src":"12015:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12026:4:44","nodeType":"YulTypedName","src":"12026:4:44","type":""}],"src":"11898:346:44"},{"body":{"nativeSrc":"12294:160:44","nodeType":"YulBlock","src":"12294:160:44","statements":[{"nativeSrc":"12304:24:44","nodeType":"YulAssignment","src":"12304:24:44","value":{"arguments":[{"name":"x","nativeSrc":"12326:1:44","nodeType":"YulIdentifier","src":"12326:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"12309:16:44","nodeType":"YulIdentifier","src":"12309:16:44"},"nativeSrc":"12309:19:44","nodeType":"YulFunctionCall","src":"12309:19:44"},"variableNames":[{"name":"x","nativeSrc":"12304:1:44","nodeType":"YulIdentifier","src":"12304:1:44"}]},{"nativeSrc":"12337:24:44","nodeType":"YulAssignment","src":"12337:24:44","value":{"arguments":[{"name":"y","nativeSrc":"12359:1:44","nodeType":"YulIdentifier","src":"12359:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"12342:16:44","nodeType":"YulIdentifier","src":"12342:16:44"},"nativeSrc":"12342:19:44","nodeType":"YulFunctionCall","src":"12342:19:44"},"variableNames":[{"name":"y","nativeSrc":"12337:1:44","nodeType":"YulIdentifier","src":"12337:1:44"}]},{"nativeSrc":"12370:17:44","nodeType":"YulAssignment","src":"12370:17:44","value":{"arguments":[{"name":"x","nativeSrc":"12382:1:44","nodeType":"YulIdentifier","src":"12382:1:44"},{"name":"y","nativeSrc":"12385:1:44","nodeType":"YulIdentifier","src":"12385:1:44"}],"functionName":{"name":"sub","nativeSrc":"12378:3:44","nodeType":"YulIdentifier","src":"12378:3:44"},"nativeSrc":"12378:9:44","nodeType":"YulFunctionCall","src":"12378:9:44"},"variableNames":[{"name":"diff","nativeSrc":"12370:4:44","nodeType":"YulIdentifier","src":"12370:4:44"}]},{"body":{"nativeSrc":"12425:22:44","nodeType":"YulBlock","src":"12425:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12427:16:44","nodeType":"YulIdentifier","src":"12427:16:44"},"nativeSrc":"12427:18:44","nodeType":"YulFunctionCall","src":"12427:18:44"},"nativeSrc":"12427:18:44","nodeType":"YulExpressionStatement","src":"12427:18:44"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"12403:4:44","nodeType":"YulIdentifier","src":"12403:4:44"},{"kind":"number","nativeSrc":"12409:14:44","nodeType":"YulLiteral","src":"12409:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12400:2:44","nodeType":"YulIdentifier","src":"12400:2:44"},"nativeSrc":"12400:24:44","nodeType":"YulFunctionCall","src":"12400:24:44"},"nativeSrc":"12397:50:44","nodeType":"YulIf","src":"12397:50:44"}]},"name":"checked_sub_t_uint48","nativeSrc":"12250:204:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12280:1:44","nodeType":"YulTypedName","src":"12280:1:44","type":""},{"name":"y","nativeSrc":"12283:1:44","nodeType":"YulTypedName","src":"12283:1:44","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"12289:4:44","nodeType":"YulTypedName","src":"12289:4:44","type":""}],"src":"12250:204:44"}]},"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 cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint48(value))\n    }\n\n    function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ICrossDomainMessanger_$7228_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ICrossDomainMessanger_$7228__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ICrossDomainMessanger_$7228_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_bytes32t_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_bytes32(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 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 validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_uint48(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_uint48(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_ISciRegistry_$8112_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISciRegistry_$8112_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__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 abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__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_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_contract$_IVerifier_$8474(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IVerifier_$8474(value) {\n        if iszero(eq(value, cleanup_t_contract$_IVerifier_$8474(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IVerifier_$8474(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IVerifier_$8474(value)\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_contract$_IVerifier_$8474(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function convert_t_contract$_IVerifier_$8474_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IVerifier_$8474_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32_t_contract$_IVerifier_$8474__to_t_address_t_bytes32_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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint48(x, y) -> sum {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n    function cleanup_t_rational_48_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n    }\n\n    function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\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_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_sub_t_uint48(x, y) -> diff {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7240":[{"length":32,"start":1145},{"length":32,"start":2010},{"length":32,"start":2156},{"length":32,"start":2983},{"length":32,"start":3129}],"7739":[{"length":32,"start":1675},{"length":32,"start":2378},{"length":32,"start":3351}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061014d5760003560e01c806384ef8ffc116100c3578063cc8463c81161007c578063cc8463c814610369578063cefc142914610387578063cf6eefb714610391578063d547741f146103b0578063d602b9fd146103cc578063dd738e6c146103d65761014d565b806384ef8ffc146102a45780638da5cb5b146102c257806391d14854146102e0578063a1eda53c14610310578063a217fddf1461032f578063a8c008611461034d5761014d565b80632a3fea62116101155780632a3fea62146101f85780632f2ff15d1461021657806336568abe14610232578063634e93da1461024e578063649a5ec71461026a5780637b103999146102865761014d565b806301ffc9a714610152578063022d63fb14610182578063095f025e146101a05780630aa6220b146101be578063248a9ca3146101c8575b600080fd5b61016c600480360381019061016791906117d8565b6103f2565b6040516101799190611820565b60405180910390f35b61018a61046c565b604051610197919061185c565b60405180910390f35b6101a8610477565b6040516101b591906118f6565b60405180910390f35b6101c661049b565b005b6101e260048036038101906101dd9190611947565b6104b3565b6040516101ef9190611983565b60405180910390f35b6102006104d2565b60405161020d9190611983565b60405180910390f35b610230600480360381019061022b91906119dc565b6104f6565b005b61024c600480360381019061024791906119dc565b610540565b005b61026860048036038101906102639190611a1c565b610655565b005b610284600480360381019061027f9190611a75565b61066f565b005b61028e610689565b60405161029b9190611ac3565b60405180910390f35b6102ac6106ad565b6040516102b99190611aed565b60405180910390f35b6102ca6106d7565b6040516102d79190611aed565b60405180910390f35b6102fa60048036038101906102f591906119dc565b6106e6565b6040516103079190611820565b60405180910390f35b610318610750565b604051610326929190611b08565b60405180910390f35b6103376107b0565b6040516103449190611983565b60405180910390f35b61036760048036038101906103629190611b31565b6107b7565b005b6103716109db565b60405161037e919061185c565b60405180910390f35b61038f610a49565b005b610399610adf565b6040516103a7929190611b71565b60405180910390f35b6103ca60048036038101906103c591906119dc565b610b22565b005b6103d4610b6c565b005b6103f060048036038101906103eb9190611bd8565b610b84565b005b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610465575061046482610dab565b5b9050919050565b600062069780905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b6104a881610e25565b6104b0610e39565b50565b6000806000838152602001908152602001600020600101549050919050565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c6881565b6000801b8203610532576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053c8282610e46565b5050565b6000801b8214801561058457506105556106ad565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1561064757600080610594610adf565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415806105da57506105d881610e68565b155b806105eb57506105e981610e7d565b155b1561062d57806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401610624919061185c565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6106518282610e91565b5050565b6000801b61066281610e25565b61066b82610f0c565b5050565b6000801b61067c81610e25565b61068582610f87565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006106e16106ad565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff16905061077381610e68565b8015610785575061078381610e7d565b155b610791576000806107a8565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086857336040517fa90b446100000000000000000000000000000000000000000000000000000000815260040161085f9190611aed565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f99190611c40565b905061090582826106e6565b6109485780826040517fe2517d3f00000000000000000000000000000000000000000000000000000000815260040161093f929190611c6d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a8c0086185856040518363ffffffff1660e01b81526004016109a3929190611c6d565b600060405180830381600087803b1580156109bd57600080fd5b505af11580156109d1573d6000803e3d6000fd5b5050505050505050565b6000806002601a9054906101000a900465ffffffffffff1690506109fe81610e68565b8015610a0f5750610a0e81610e7d565b5b610a2d576001601a9054906101000a900465ffffffffffff16610a43565b600260149054906101000a900465ffffffffffff165b91505090565b6000610a53610adf565b5090508073ffffffffffffffffffffffffffffffffffffffff16610a75610fee565b73ffffffffffffffffffffffffffffffffffffffff1614610ad457610a98610fee565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610acb9190611aed565b60405180910390fd5b610adc610ff6565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b6000801b8203610b5e576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b6882826110c5565b5050565b6000801b610b7981610e25565b610b816110e7565b50565b7f272794ccb0a4bcd0471f23cee002b833b46b2522c714889fc822087de7383c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3557336040517fa90b4461000000000000000000000000000000000000000000000000000000008152600401610c2c9190611aed565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190611c40565b9050610cd282826106e6565b610d155780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610d0c929190611c6d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663dd738e6c8686866040518463ffffffff1660e01b8152600401610d7293929190611cb7565b600060405180830381600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505050505050505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e1e5750610e1d826110f4565b5b9050919050565b610e3681610e31610fee565b61115e565b50565b610e446000806111af565b565b610e4f826104b3565b610e5881610e25565b610e62838361129f565b50505050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610e99610fee565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610efd576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f07828261136c565b505050565b6000610f166109db565b610f1f426113ef565b610f299190611d1d565b9050610f358282611449565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed682604051610f7b919061185c565b60405180910390a25050565b6000610f92826114fc565b610f9b426113ef565b610fa59190611d1d565b9050610fb182826111af565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b8282604051610fe2929190611b08565b60405180910390a15050565b600033905090565b600080611001610adf565b9150915061100e81610e68565b1580611020575061101e81610e7d565b155b1561106257806040517f19ca5ebb000000000000000000000000000000000000000000000000000000008152600401611059919061185c565b60405180910390fd5b6110766000801b6110716106ad565b61136c565b506110846000801b8361129f565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6110ce826104b3565b6110d781610e25565b6110e1838361136c565b50505050565b6110f2600080611449565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61116882826106e6565b6111ab5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016111a2929190611c6d565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506111d181610e68565b15611250576111df81610e7d565b1561122257600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555061124f565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60008060001b830361135a57600073ffffffffffffffffffffffffffffffffffffffff166112cb6106ad565b73ffffffffffffffffffffffffffffffffffffffff1614611318576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611364838361155b565b905092915050565b60008060001b831480156113b257506113836106ad565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156113dd57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6113e7838361164c565b905092915050565b600065ffffffffffff8016821115611441576030826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611438929190611db8565b60405180910390fd5b819050919050565b6000611453610adf565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055506114c581610e68565b156114f7577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b6000806115076109db565b90508065ffffffffffff168365ffffffffffff161161153157828161152c9190611de1565b611553565b6115528365ffffffffffff1661154561046c565b65ffffffffffff1661173e565b5b915050919050565b600061156783836106e6565b61164157600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506115de610fee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611646565b600090505b92915050565b600061165883836106e6565b1561173357600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506116d0610fee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611738565b600090505b92915050565b600061174d8284108484611755565b905092915050565b60006117608461176f565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117b581611780565b81146117c057600080fd5b50565b6000813590506117d2816117ac565b92915050565b6000602082840312156117ee576117ed61177b565b5b60006117fc848285016117c3565b91505092915050565b60008115159050919050565b61181a81611805565b82525050565b60006020820190506118356000830184611811565b92915050565b600065ffffffffffff82169050919050565b6118568161183b565b82525050565b6000602082019050611871600083018461184d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006118bc6118b76118b284611877565b611897565b611877565b9050919050565b60006118ce826118a1565b9050919050565b60006118e0826118c3565b9050919050565b6118f0816118d5565b82525050565b600060208201905061190b60008301846118e7565b92915050565b6000819050919050565b61192481611911565b811461192f57600080fd5b50565b6000813590506119418161191b565b92915050565b60006020828403121561195d5761195c61177b565b5b600061196b84828501611932565b91505092915050565b61197d81611911565b82525050565b60006020820190506119986000830184611974565b92915050565b60006119a982611877565b9050919050565b6119b98161199e565b81146119c457600080fd5b50565b6000813590506119d6816119b0565b92915050565b600080604083850312156119f3576119f261177b565b5b6000611a0185828601611932565b9250506020611a12858286016119c7565b9150509250929050565b600060208284031215611a3257611a3161177b565b5b6000611a40848285016119c7565b91505092915050565b611a528161183b565b8114611a5d57600080fd5b50565b600081359050611a6f81611a49565b92915050565b600060208284031215611a8b57611a8a61177b565b5b6000611a9984828501611a60565b91505092915050565b6000611aad826118c3565b9050919050565b611abd81611aa2565b82525050565b6000602082019050611ad86000830184611ab4565b92915050565b611ae78161199e565b82525050565b6000602082019050611b026000830184611ade565b92915050565b6000604082019050611b1d600083018561184d565b611b2a602083018461184d565b9392505050565b60008060408385031215611b4857611b4761177b565b5b6000611b56858286016119c7565b9250506020611b6785828601611932565b9150509250929050565b6000604082019050611b866000830185611ade565b611b93602083018461184d565b9392505050565b6000611ba58261199e565b9050919050565b611bb581611b9a565b8114611bc057600080fd5b50565b600081359050611bd281611bac565b92915050565b600080600060608486031215611bf157611bf061177b565b5b6000611bff868287016119c7565b9350506020611c1086828701611932565b9250506040611c2186828701611bc3565b9150509250925092565b600081519050611c3a816119b0565b92915050565b600060208284031215611c5657611c5561177b565b5b6000611c6484828501611c2b565b91505092915050565b6000604082019050611c826000830185611ade565b611c8f6020830184611974565b9392505050565b6000611ca1826118c3565b9050919050565b611cb181611c96565b82525050565b6000606082019050611ccc6000830186611ade565b611cd96020830185611974565b611ce66040830184611ca8565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d288261183b565b9150611d338361183b565b9250828201905065ffffffffffff811115611d5157611d50611cee565b5b92915050565b6000819050919050565b600060ff82169050919050565b6000611d89611d84611d7f84611d57565b611897565b611d61565b9050919050565b611d9981611d6e565b82525050565b6000819050919050565b611db281611d9f565b82525050565b6000604082019050611dcd6000830185611d90565b611dda6020830184611da9565b9392505050565b6000611dec8261183b565b9150611df78361183b565b9250828203905065ffffffffffff811115611e1557611e14611cee565b5b9291505056fea2646970667358221220d1876682a0029faa45012b63f6e33c43f45fdd5e971193958a65b47631b6915264736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84EF8FFC GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x391 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3B0 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x3D6 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x34D JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2A3FEA62 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x2A3FEA62 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x232 JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x286 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x95F025E EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x16C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x17D8 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x179 SWAP2 SWAP1 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18A PUSH2 0x46C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x197 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A8 PUSH2 0x477 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B5 SWAP2 SWAP1 PUSH2 0x18F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C6 PUSH2 0x49B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x1947 JUMP JUMPDEST PUSH2 0x4B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EF SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x200 PUSH2 0x4D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20D SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x230 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22B SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x4F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x24C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x247 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x1A1C JUMP JUMPDEST PUSH2 0x655 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x284 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1A75 JUMP JUMPDEST PUSH2 0x66F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x28E PUSH2 0x689 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29B SWAP2 SWAP1 PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH2 0x6AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2CA PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D7 SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2FA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0x6E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x318 PUSH2 0x750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x326 SWAP3 SWAP2 SWAP1 PUSH2 0x1B08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x337 PUSH2 0x7B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x1983 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x367 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x362 SWAP2 SWAP1 PUSH2 0x1B31 JUMP JUMPDEST PUSH2 0x7B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x371 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38F PUSH2 0xA49 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x399 PUSH2 0xADF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A7 SWAP3 SWAP2 SWAP1 PUSH2 0x1B71 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3CA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C5 SWAP2 SWAP1 PUSH2 0x19DC JUMP JUMPDEST PUSH2 0xB22 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3D4 PUSH2 0xB6C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x1BD8 JUMP JUMPDEST PUSH2 0xB84 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x465 JUMPI POP PUSH2 0x464 DUP3 PUSH2 0xDAB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x4A8 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x4B0 PUSH2 0xE39 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x53C DUP3 DUP3 PUSH2 0xE46 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x584 JUMPI POP PUSH2 0x555 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x647 JUMPI PUSH1 0x0 DUP1 PUSH2 0x594 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x5DA JUMPI POP PUSH2 0x5D8 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x5EB JUMPI POP PUSH2 0x5E9 DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x62D JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x624 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x651 DUP3 DUP3 PUSH2 0xE91 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x662 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x66B DUP3 PUSH2 0xF0C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x67C DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x685 DUP3 PUSH2 0xF87 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6E1 PUSH2 0x6AD JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x773 DUP2 PUSH2 0xE68 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x785 JUMPI POP PUSH2 0x783 DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x868 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xA90B446100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x85F SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6E296E45 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8F9 SWAP2 SWAP1 PUSH2 0x1C40 JUMP JUMPDEST SWAP1 POP PUSH2 0x905 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x948 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x93F SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA8C00861 DUP6 DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A3 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x9FE DUP2 PUSH2 0xE68 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA0F JUMPI POP PUSH2 0xA0E DUP2 PUSH2 0xE7D JUMP JUMPDEST JUMPDEST PUSH2 0xA2D JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xA43 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA53 PUSH2 0xADF JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xA75 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xAD4 JUMPI PUSH2 0xA98 PUSH2 0xFEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xACB SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xADC PUSH2 0xFF6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xB5E JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB68 DUP3 DUP3 PUSH2 0x10C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xB79 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0xB81 PUSH2 0x10E7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0x272794CCB0A4BCD0471F23CEE002B833B46B2522C714889FC822087DE7383C68 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC35 JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0xA90B446100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC2C SWAP2 SWAP1 PUSH2 0x1AED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6E296E45 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCC6 SWAP2 SWAP1 PUSH2 0x1C40 JUMP JUMPDEST SWAP1 POP PUSH2 0xCD2 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0xD15 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0C SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD738E6C DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD72 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xE1E JUMPI POP PUSH2 0xE1D DUP3 PUSH2 0x10F4 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE36 DUP2 PUSH2 0xE31 PUSH2 0xFEE JUMP JUMPDEST PUSH2 0x115E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE44 PUSH1 0x0 DUP1 PUSH2 0x11AF JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xE4F DUP3 PUSH2 0x4B3 JUMP JUMPDEST PUSH2 0xE58 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0xE62 DUP4 DUP4 PUSH2 0x129F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE99 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEFD JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF07 DUP3 DUP3 PUSH2 0x136C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF16 PUSH2 0x9DB JUMP JUMPDEST PUSH2 0xF1F TIMESTAMP PUSH2 0x13EF JUMP JUMPDEST PUSH2 0xF29 SWAP2 SWAP1 PUSH2 0x1D1D JUMP JUMPDEST SWAP1 POP PUSH2 0xF35 DUP3 DUP3 PUSH2 0x1449 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0xF7B SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF92 DUP3 PUSH2 0x14FC JUMP JUMPDEST PUSH2 0xF9B TIMESTAMP PUSH2 0x13EF JUMP JUMPDEST PUSH2 0xFA5 SWAP2 SWAP1 PUSH2 0x1D1D JUMP JUMPDEST SWAP1 POP PUSH2 0xFB1 DUP3 DUP3 PUSH2 0x11AF JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFE2 SWAP3 SWAP2 SWAP1 PUSH2 0x1B08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1001 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x100E DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x1020 JUMPI POP PUSH2 0x101E DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1062 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1059 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1076 PUSH1 0x0 DUP1 SHL PUSH2 0x1071 PUSH2 0x6AD JUMP JUMPDEST PUSH2 0x136C JUMP JUMPDEST POP PUSH2 0x1084 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x129F JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x10CE DUP3 PUSH2 0x4B3 JUMP JUMPDEST PUSH2 0x10D7 DUP2 PUSH2 0xE25 JUMP JUMPDEST PUSH2 0x10E1 DUP4 DUP4 PUSH2 0x136C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x10F2 PUSH1 0x0 DUP1 PUSH2 0x1449 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1168 DUP3 DUP3 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x11AB JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A2 SWAP3 SWAP2 SWAP1 PUSH2 0x1C6D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x11D1 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO PUSH2 0x1250 JUMPI PUSH2 0x11DF DUP2 PUSH2 0xE7D JUMP JUMPDEST ISZERO PUSH2 0x1222 JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x124F JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x135A JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x12CB PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1318 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x1364 DUP4 DUP4 PUSH2 0x155B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x13B2 JUMPI POP PUSH2 0x1383 PUSH2 0x6AD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x13DD JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x13E7 DUP4 DUP4 PUSH2 0x164C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x1441 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1438 SWAP3 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1453 PUSH2 0xADF JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x14C5 DUP2 PUSH2 0xE68 JUMP JUMPDEST ISZERO PUSH2 0x14F7 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1507 PUSH2 0x9DB JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x1531 JUMPI DUP3 DUP2 PUSH2 0x152C SWAP2 SWAP1 PUSH2 0x1DE1 JUMP JUMPDEST PUSH2 0x1553 JUMP JUMPDEST PUSH2 0x1552 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1545 PUSH2 0x46C JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x173E JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1567 DUP4 DUP4 PUSH2 0x6E6 JUMP JUMPDEST PUSH2 0x1641 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x15DE PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1646 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1658 DUP4 DUP4 PUSH2 0x6E6 JUMP JUMPDEST ISZERO PUSH2 0x1733 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x16D0 PUSH2 0xFEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1738 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x174D DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1755 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1760 DUP5 PUSH2 0x176F JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17B5 DUP2 PUSH2 0x1780 JUMP JUMPDEST DUP2 EQ PUSH2 0x17C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17D2 DUP2 PUSH2 0x17AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x17FC DUP5 DUP3 DUP6 ADD PUSH2 0x17C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x181A DUP2 PUSH2 0x1805 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1835 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1811 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1856 DUP2 PUSH2 0x183B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1871 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18BC PUSH2 0x18B7 PUSH2 0x18B2 DUP5 PUSH2 0x1877 JUMP JUMPDEST PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x1877 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18CE DUP3 PUSH2 0x18A1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18E0 DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F0 DUP2 PUSH2 0x18D5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x190B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18E7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1924 DUP2 PUSH2 0x1911 JUMP JUMPDEST DUP2 EQ PUSH2 0x192F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1941 DUP2 PUSH2 0x191B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x195D JUMPI PUSH2 0x195C PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x196B DUP5 DUP3 DUP6 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x197D DUP2 PUSH2 0x1911 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1998 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1974 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19A9 DUP3 PUSH2 0x1877 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19B9 DUP2 PUSH2 0x199E JUMP JUMPDEST DUP2 EQ PUSH2 0x19C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19D6 DUP2 PUSH2 0x19B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19F3 JUMPI PUSH2 0x19F2 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A01 DUP6 DUP3 DUP7 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A12 DUP6 DUP3 DUP7 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A32 JUMPI PUSH2 0x1A31 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A40 DUP5 DUP3 DUP6 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A52 DUP2 PUSH2 0x183B JUMP JUMPDEST DUP2 EQ PUSH2 0x1A5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A6F DUP2 PUSH2 0x1A49 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A8B JUMPI PUSH2 0x1A8A PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A99 DUP5 DUP3 DUP6 ADD PUSH2 0x1A60 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AAD DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ABD DUP2 PUSH2 0x1AA2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1AE7 DUP2 PUSH2 0x199E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B02 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ADE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1B1D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x184D JUMP JUMPDEST PUSH2 0x1B2A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B48 JUMPI PUSH2 0x1B47 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B56 DUP6 DUP3 DUP7 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1B67 DUP6 DUP3 DUP7 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1B86 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1B93 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x184D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA5 DUP3 PUSH2 0x199E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB5 DUP2 PUSH2 0x1B9A JUMP JUMPDEST DUP2 EQ PUSH2 0x1BC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BD2 DUP2 PUSH2 0x1BAC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1BF1 JUMPI PUSH2 0x1BF0 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1BFF DUP7 DUP3 DUP8 ADD PUSH2 0x19C7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1C10 DUP7 DUP3 DUP8 ADD PUSH2 0x1932 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1C21 DUP7 DUP3 DUP8 ADD PUSH2 0x1BC3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C3A DUP2 PUSH2 0x19B0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C56 JUMPI PUSH2 0x1C55 PUSH2 0x177B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C64 DUP5 DUP3 DUP6 ADD PUSH2 0x1C2B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1C82 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1C8F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1974 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CA1 DUP3 PUSH2 0x18C3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CB1 DUP2 PUSH2 0x1C96 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1CCC PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1ADE JUMP JUMPDEST PUSH2 0x1CD9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1974 JUMP JUMPDEST PUSH2 0x1CE6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1CA8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D28 DUP3 PUSH2 0x183B JUMP JUMPDEST SWAP2 POP PUSH2 0x1D33 DUP4 PUSH2 0x183B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D51 JUMPI PUSH2 0x1D50 PUSH2 0x1CEE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D89 PUSH2 0x1D84 PUSH2 0x1D7F DUP5 PUSH2 0x1D57 JUMP JUMPDEST PUSH2 0x1897 JUMP JUMPDEST PUSH2 0x1D61 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D99 DUP2 PUSH2 0x1D6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1DB2 DUP2 PUSH2 0x1D9F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D90 JUMP JUMPDEST PUSH2 0x1DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DA9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DEC DUP3 PUSH2 0x183B JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF7 DUP4 PUSH2 0x183B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1E15 JUMPI PUSH2 0x1E14 PUSH2 0x1CEE JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 DUP8 PUSH7 0x82A0029FAA4501 0x2B PUSH4 0xF6E33C43 DELEGATECALL PUSH0 0xDD MCOPY SWAP8 GT SWAP4 SWAP6 DUP11 PUSH6 0xB47631B69152 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"615:2438:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;580:59:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126:9;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;744:80:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3198:265:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8068:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;831:38:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:106:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2146:190:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3563:267;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2799:252:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2667:219:9;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;580:59:32:-;;;:::o;10927:126:9:-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;744:80:38:-;791:33;744:80;:::o;3198:265:9:-;2232:4:6;3325:18:9;;3317:4;:26;3313:104;;3366:40;;;;;;;;;;;;;;3313:104;3426:30;3442:4;3448:7;3426:15;:30::i;:::-;3198:265;;:::o;4515:566::-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;8068:150::-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;831:38:38:-;;;:::o;6707:106:9:-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;2146:190:38:-;791:33;1057:20:32;1035:43;;:10;:43;;;1031:113;;1122:10;1101:32;;;;;;;;;;;:::i;:::-;;;;;;;;1031:113;1154:15;1172:20;:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:61;;1230:22;1238:4;1244:7;1230;:22::i;:::-;1225:108;;1308:7;1317:4;1275:47;;;;;;;;;;;;:::i;:::-;;;;;;;;1225:108;2287:8:38::1;:23;;;2311:5;2318:10;2287:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1021:329:32::0;2146:190:38;;;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;3563:267::-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2799:252:38:-;791:33;1057:20:32;1035:43;;:10;:43;;;1031:113;;1122:10;1101:32;;;;;;;;;;;:::i;:::-;;;;;;;;1031:113;1154:15;1172:20;:41;;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1154:61;;1230:22;1238:4;1244:7;1230;:22::i;:::-;1225:108;;1308:7;1317:4;1275:47;;;;;;;;;;;;:::i;:::-;;;;;;;;1225:108;2980:8:38::1;:35;;;3016:5;3023:10;3035:8;2980:64;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1021:329:32::0;2799:252:38;;;;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;4226:136:6:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;14471:106:9:-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;5946:271::-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:44:-;197:1;194;187: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:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:126::-;2003:7;2043:42;2036:5;2032:54;2021:65;;1966:126;;;:::o;2098:60::-;2126:3;2147:5;2140:12;;2098:60;;;:::o;2164:142::-;2214:9;2247:53;2265:34;2274:24;2292:5;2274:24;:::i;:::-;2265:34;:::i;:::-;2247:53;:::i;:::-;2234:66;;2164:142;;;:::o;2312:126::-;2362:9;2395:37;2426:5;2395:37;:::i;:::-;2382:50;;2312:126;;;:::o;2444:156::-;2524:9;2557:37;2588:5;2557:37;:::i;:::-;2544:50;;2444:156;;;:::o;2606:191::-;2723:67;2784:5;2723:67;:::i;:::-;2718:3;2711:80;2606:191;;:::o;2803:282::-;2926:4;2964:2;2953:9;2949:18;2941:26;;2977:101;3075:1;3064:9;3060:17;3051:6;2977:101;:::i;:::-;2803:282;;;;:::o;3091:77::-;3128:7;3157:5;3146:16;;3091:77;;;:::o;3174:122::-;3247:24;3265:5;3247:24;:::i;:::-;3240:5;3237:35;3227:63;;3286:1;3283;3276:12;3227:63;3174:122;:::o;3302:139::-;3348:5;3386:6;3373:20;3364:29;;3402:33;3429:5;3402:33;:::i;:::-;3302:139;;;;:::o;3447:329::-;3506:6;3555:2;3543:9;3534:7;3530:23;3526:32;3523:119;;;3561:79;;:::i;:::-;3523:119;3681:1;3706:53;3751:7;3742:6;3731:9;3727:22;3706:53;:::i;:::-;3696:63;;3652:117;3447:329;;;;:::o;3782:118::-;3869:24;3887:5;3869:24;:::i;:::-;3864:3;3857:37;3782:118;;:::o;3906:222::-;3999:4;4037:2;4026:9;4022:18;4014:26;;4050:71;4118:1;4107:9;4103:17;4094:6;4050:71;:::i;:::-;3906:222;;;;:::o;4134:96::-;4171:7;4200:24;4218:5;4200:24;:::i;:::-;4189:35;;4134:96;;;:::o;4236:122::-;4309:24;4327:5;4309:24;:::i;:::-;4302:5;4299:35;4289:63;;4348:1;4345;4338:12;4289:63;4236:122;:::o;4364:139::-;4410:5;4448:6;4435:20;4426:29;;4464:33;4491:5;4464:33;:::i;:::-;4364:139;;;;:::o;4509:474::-;4577:6;4585;4634:2;4622:9;4613:7;4609:23;4605:32;4602:119;;;4640:79;;:::i;:::-;4602:119;4760:1;4785:53;4830:7;4821:6;4810:9;4806:22;4785:53;:::i;:::-;4775:63;;4731:117;4887:2;4913:53;4958:7;4949:6;4938:9;4934:22;4913:53;:::i;:::-;4903:63;;4858:118;4509:474;;;;;:::o;4989:329::-;5048:6;5097:2;5085:9;5076:7;5072:23;5068:32;5065:119;;;5103:79;;:::i;:::-;5065:119;5223:1;5248:53;5293:7;5284:6;5273:9;5269:22;5248:53;:::i;:::-;5238:63;;5194:117;4989:329;;;;:::o;5324:120::-;5396:23;5413:5;5396:23;:::i;:::-;5389:5;5386:34;5376:62;;5434:1;5431;5424:12;5376:62;5324:120;:::o;5450:137::-;5495:5;5533:6;5520:20;5511:29;;5549:32;5575:5;5549:32;:::i;:::-;5450:137;;;;:::o;5593:327::-;5651:6;5700:2;5688:9;5679:7;5675:23;5671:32;5668:119;;;5706:79;;:::i;:::-;5668:119;5826:1;5851:52;5895:7;5886:6;5875:9;5871:22;5851:52;:::i;:::-;5841:62;;5797:116;5593:327;;;;:::o;5926:147::-;5997:9;6030:37;6061:5;6030:37;:::i;:::-;6017:50;;5926:147;;;:::o;6079:173::-;6187:58;6239:5;6187:58;:::i;:::-;6182:3;6175:71;6079:173;;:::o;6258:264::-;6372:4;6410:2;6399:9;6395:18;6387:26;;6423:92;6512:1;6501:9;6497:17;6488:6;6423:92;:::i;:::-;6258:264;;;;:::o;6528:118::-;6615:24;6633:5;6615:24;:::i;:::-;6610:3;6603:37;6528:118;;:::o;6652:222::-;6745:4;6783:2;6772:9;6768:18;6760:26;;6796:71;6864:1;6853:9;6849:17;6840:6;6796:71;:::i;:::-;6652:222;;;;:::o;6880:324::-;6997:4;7035:2;7024:9;7020:18;7012:26;;7048:69;7114:1;7103:9;7099:17;7090:6;7048:69;:::i;:::-;7127:70;7193:2;7182:9;7178:18;7169:6;7127:70;:::i;:::-;6880:324;;;;;:::o;7210:474::-;7278:6;7286;7335:2;7323:9;7314:7;7310:23;7306:32;7303:119;;;7341:79;;:::i;:::-;7303:119;7461:1;7486:53;7531:7;7522:6;7511:9;7507:22;7486:53;:::i;:::-;7476:63;;7432:117;7588:2;7614:53;7659:7;7650:6;7639:9;7635:22;7614:53;:::i;:::-;7604:63;;7559:118;7210:474;;;;;:::o;7690:328::-;7809:4;7847:2;7836:9;7832:18;7824:26;;7860:71;7928:1;7917:9;7913:17;7904:6;7860:71;:::i;:::-;7941:70;8007:2;7996:9;7992:18;7983:6;7941:70;:::i;:::-;7690:328;;;;;:::o;8024:114::-;8079:7;8108:24;8126:5;8108:24;:::i;:::-;8097:35;;8024:114;;;:::o;8144:158::-;8235:42;8271:5;8235:42;:::i;:::-;8228:5;8225:53;8215:81;;8292:1;8289;8282:12;8215:81;8144:158;:::o;8308:175::-;8372:5;8410:6;8397:20;8388:29;;8426:51;8471:5;8426:51;:::i;:::-;8308:175;;;;:::o;8489:655::-;8584:6;8592;8600;8649:2;8637:9;8628:7;8624:23;8620:32;8617:119;;;8655:79;;:::i;:::-;8617:119;8775:1;8800:53;8845:7;8836:6;8825:9;8821:22;8800:53;:::i;:::-;8790:63;;8746:117;8902:2;8928:53;8973:7;8964:6;8953:9;8949:22;8928:53;:::i;:::-;8918:63;;8873:118;9030:2;9056:71;9119:7;9110:6;9099:9;9095:22;9056:71;:::i;:::-;9046:81;;9001:136;8489:655;;;;;:::o;9150:143::-;9207:5;9238:6;9232:13;9223:22;;9254:33;9281:5;9254:33;:::i;:::-;9150:143;;;;:::o;9299:351::-;9369:6;9418:2;9406:9;9397:7;9393:23;9389:32;9386:119;;;9424:79;;:::i;:::-;9386:119;9544:1;9569:64;9625:7;9616:6;9605:9;9601:22;9569:64;:::i;:::-;9559:74;;9515:128;9299:351;;;;:::o;9656:332::-;9777:4;9815:2;9804:9;9800:18;9792:26;;9828:71;9896:1;9885:9;9881:17;9872:6;9828:71;:::i;:::-;9909:72;9977:2;9966:9;9962:18;9953:6;9909:72;:::i;:::-;9656:332;;;;;:::o;9994:144::-;10062:9;10095:37;10126:5;10095:37;:::i;:::-;10082:50;;9994:144;;;:::o;10144:167::-;10249:55;10298:5;10249:55;:::i;:::-;10244:3;10237:68;10144:167;;:::o;10317:478::-;10484:4;10522:2;10511:9;10507:18;10499:26;;10535:71;10603:1;10592:9;10588:17;10579:6;10535:71;:::i;:::-;10616:72;10684:2;10673:9;10669:18;10660:6;10616:72;:::i;:::-;10698:90;10784:2;10773:9;10769:18;10760:6;10698:90;:::i;:::-;10317:478;;;;;;:::o;10801:180::-;10849:77;10846:1;10839:88;10946:4;10943:1;10936:15;10970:4;10967:1;10960:15;10987:201;11026:3;11045:19;11062:1;11045:19;:::i;:::-;11040:24;;11078:19;11095:1;11078:19;:::i;:::-;11073:24;;11120:1;11117;11113:9;11106:16;;11143:14;11138:3;11135:23;11132:49;;;11161:18;;:::i;:::-;11132:49;10987:201;;;;:::o;11194:86::-;11240:7;11269:5;11258:16;;11194:86;;;:::o;11286:::-;11321:7;11361:4;11354:5;11350:16;11339:27;;11286:86;;;:::o;11378:156::-;11435:9;11468:60;11484:43;11493:33;11520:5;11493:33;:::i;:::-;11484:43;:::i;:::-;11468:60;:::i;:::-;11455:73;;11378:156;;;:::o;11540:145::-;11634:44;11672:5;11634:44;:::i;:::-;11629:3;11622:57;11540:145;;:::o;11691:77::-;11728:7;11757:5;11746:16;;11691:77;;;:::o;11774:118::-;11861:24;11879:5;11861:24;:::i;:::-;11856:3;11849:37;11774:118;;:::o;11898:346::-;12026:4;12064:2;12053:9;12049:18;12041:26;;12077:78;12152:1;12141:9;12137:17;12128:6;12077:78;:::i;:::-;12165:72;12233:2;12222:9;12218:18;12209:6;12165:72;:::i;:::-;11898:346;;;;;:::o;12250:204::-;12289:4;12309:19;12326:1;12309:19;:::i;:::-;12304:24;;12342:19;12359:1;12342:19;:::i;:::-;12337:24;;12385:1;12382;12378:9;12370:17;;12409:14;12403:4;12400:24;12397:50;;;12427:18;;:::i;:::-;12397:50;12250:204;;;;:::o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","REGISTER_DOMAIN_ROLE()":"2a3fea62","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","crossDomainMessanger()":"095f025e","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","owner()":"8da5cb5b","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","registerDomain(address,bytes32)":"a8c00861","registerDomainWithVerifier(address,bytes32,address)":"dd738e6c","registry()":"7b103999","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sciRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_crossDomainMessanger\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"_initialDelay\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"_initialDefaultAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"InvalidMessageSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTER_DOMAIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessanger\",\"outputs\":[{\"internalType\":\"contract ICrossDomainMessanger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract allows addresses from the source chain with REGISTER_DOMAIN_ROLE role to register a domain. It uses the superchain cross-domain messaging to \\\"listen\\\" for domain registration requests from the source chain.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"InvalidMessageSender(address)\":[{\"details\":\"Thrown when the caller is not the cross domain messanger.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Initializes the contract by setting up the SCI Registry reference and defining the admin rules.\",\"params\":{\"_crossDomainMessanger\":\"Address of the cross-domain messenger contract.\",\"_initialDefaultAdmin\":\"The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\",\"_initialDelay\":\"The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\",\"_sciRegistry\":\"Address of the custom domain registry contract.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"See {AccessControl-grantRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"registerDomain(address,bytes32)\":{\"details\":\"Registers a domain in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered. Requirements: - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role. - The caller must be the superchain cross domain messanger\",\"owner\":\"Address expected to be the domain owner.\"}},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"Registers a domain with a verifier in the SCI Registry contract.\",\"params\":{\"domainHash\":\"The namehash of the domain to be registered.\",\"owner\":\"Address expected to be the domain owner.\",\"verifier\":\"Address of the verifier contract. Requirements: - The xDomainMessageSender must have the REGISTER_DOMAIN_ROLE role. - The caller must be the superchain cross domain messanger\"}},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"SuperChainTargetRegistrar\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Registrars/SuperChainTargetRegistrar.sol\":\"SuperChainTargetRegistrar\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/Op/ICrossDomainMessanger.sol\":{\"keccak256\":\"0xde455f4311782d757e1c0b1dadb9b51bac2c24072b2612ff64248770ff839454\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b155a320ecb16eaacacc8daa685070539ad344f39578c0e4e1072a316398be9a\",\"dweb:/ipfs/QmR7n1ev3nQKoQfrFNscvCzLDjkhGnmMQLY75D5WELXM9V\"]},\"contracts/Op/SuperChainAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x673d4869ce38e8c86b134c18fd24c8d628091d43338e5dcdd7b6299a8a806c12\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://87351faca1a147e226c9f736dcc8a8cb3b64e57ff8ecd3e73add7c9651dff7da\",\"dweb:/ipfs/Qma2hiVgc1tSotYEB6tBsgnmjWdCzAn5JUzYXwGaCu6rsG\"]},\"contracts/Registrars/SuperChainTargetRegistrar.sol\":{\"keccak256\":\"0x67c7e64e23e87cd56594c8a8109558da6f340a2c9574e120865ccc27304b1f35\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://91946a74ed9705ef61a000c98abd2c6d4513563abd605e926cbba0a191736831\",\"dweb:/ipfs/QmTWskvhbfwergYwnr1JF3Hv9tQDLBmtSAqZgwKgto92Cd\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"},{"astId":1741,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_pendingDefaultAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1743,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_pendingDefaultAdminSchedule","offset":20,"slot":"1","type":"t_uint48"},{"astId":1745,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_currentDelay","offset":26,"slot":"1","type":"t_uint48"},{"astId":1747,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_currentDefaultAdmin","offset":0,"slot":"2","type":"t_address"},{"astId":1749,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_pendingDelay","offset":20,"slot":"2","type":"t_uint48"},{"astId":1751,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"_pendingDelaySchedule","offset":26,"slot":"2","type":"t_uint48"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"contracts/Registrars/SuperChainTargetRegistrar.sol:SuperChainTargetRegistrar","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint48":{"encoding":"inplace","label":"uint48","numberOfBytes":"6"}}}}},"contracts/SCI.sol":{"SCI":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","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":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","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":"oldRegistryAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newRegistryAddress","type":"address"}],"name":"RegistrySet","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainHashToRecord","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"contract IVerifier","name":"verifier","type":"address"},{"internalType":"uint256","name":"lastOwnerSetTime","type":"uint256"},{"internalType":"uint256","name":"lastVerifierSetTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"isVerifiedForDomainHash","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"domainHashes","type":"bytes32[]"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"isVerifiedForMultipleDomainHashes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRegistry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600f57600080fd5b506113e38061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610143578063929d1ac114610161578063a91ee0dc14610191578063c4d66de8146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae5780635b377fa2146100de578063715018a61461011157806379ba50971461011b5780637b10399914610125575b600080fd5b6100c860048036038101906100c39190610d2e565b610203565b6040516100d59190610d90565b60405180910390f35b6100f860048036038101906100f39190610dab565b61036c565b6040516101089493929190610e46565b60405180910390f35b61011961041b565b005b61012361042f565b005b61012d6104be565b60405161013a9190610eac565b60405180910390f35b61014b6104e2565b6040516101589190610ec7565b60405180910390f35b61017b6004803603810190610176919061103b565b61051a565b6040516101889190611168565b60405180910390f35b6101ab60048036038101906101a6919061118a565b6105d7565b005b6101c760048036038101906101c2919061118a565b6106a3565b005b6101d161083a565b6040516101de9190610ec7565b60405180910390f35b61020160048036038101906101fc919061118a565b610872565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f91906111c6565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611249565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112b0565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036191906112e7565b9150505b9392505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b81526004016103cb91906111c6565b608060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611249565b93509350935093509193509193565b61042361092e565b61042d60006109b5565b565b60006104396109f5565b90508073ffffffffffffffffffffffffffffffffffffffff1661045a61083a565b73ffffffffffffffffffffffffffffffffffffffff16146104b257806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104a99190610ec7565b60405180910390fd5b6104bb816109b5565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104ed6109fd565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff81111561053957610538610ef8565b5b6040519080825280602002602001820160405280156105675781602001602082028036833780820191505090505b50905060008551905060005b818110156105ca576105a087828151811061059157610590611314565b5b60200260200101518787610203565b8382815181106105b3576105b2611314565b5b602002602001018181525050806001019050610573565b5081925050509392505050565b6105df61092e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60006106ad610a25565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156106fb5750825b9050600060018367ffffffffffffffff16148015610730575060003073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561073e575080155b15610775576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107c55760018560000160086101000a81548160ff0219169083151502179055505b6107cd610a4d565b6107d686610a57565b83156108325760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516108299190611392565b60405180910390a15b505050505050565b600080610845610a6b565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61087a61092e565b6000610884610a6b565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108e86104e2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109366109f5565b73ffffffffffffffffffffffffffffffffffffffff166109546104e2565b73ffffffffffffffffffffffffffffffffffffffff16146109b3576109776109f5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109aa9190610ec7565b60405180910390fd5b565b60006109bf610a6b565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556109f182610a93565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610a55610b6a565b565b610a5f610b6a565b610a6881610baa565b50565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b6000610a9d6109fd565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b610b72610c30565b610ba8576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610bb2610b6a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c245760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c1b9190610ec7565b60405180910390fd5b610c2d816109b5565b50565b6000610c3a610a25565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c7781610c64565b8114610c8257600080fd5b50565b600081359050610c9481610c6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc582610c9a565b9050919050565b610cd581610cba565b8114610ce057600080fd5b50565b600081359050610cf281610ccc565b92915050565b6000819050919050565b610d0b81610cf8565b8114610d1657600080fd5b50565b600081359050610d2881610d02565b92915050565b600080600060608486031215610d4757610d46610c5a565b5b6000610d5586828701610c85565b9350506020610d6686828701610ce3565b9250506040610d7786828701610d19565b9150509250925092565b610d8a81610cf8565b82525050565b6000602082019050610da56000830184610d81565b92915050565b600060208284031215610dc157610dc0610c5a565b5b6000610dcf84828501610c85565b91505092915050565b610de181610cba565b82525050565b6000819050919050565b6000610e0c610e07610e0284610c9a565b610de7565b610c9a565b9050919050565b6000610e1e82610df1565b9050919050565b6000610e3082610e13565b9050919050565b610e4081610e25565b82525050565b6000608082019050610e5b6000830187610dd8565b610e686020830186610e37565b610e756040830185610d81565b610e826060830184610d81565b95945050505050565b6000610e9682610e13565b9050919050565b610ea681610e8b565b82525050565b6000602082019050610ec16000830184610e9d565b92915050565b6000602082019050610edc6000830184610dd8565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f3082610ee7565b810181811067ffffffffffffffff82111715610f4f57610f4e610ef8565b5b80604052505050565b6000610f62610c50565b9050610f6e8282610f27565b919050565b600067ffffffffffffffff821115610f8e57610f8d610ef8565b5b602082029050602081019050919050565b600080fd5b6000610fb7610fb284610f73565b610f58565b90508083825260208201905060208402830185811115610fda57610fd9610f9f565b5b835b818110156110035780610fef8882610c85565b845260208401935050602081019050610fdc565b5050509392505050565b600082601f83011261102257611021610ee2565b5b8135611032848260208601610fa4565b91505092915050565b60008060006060848603121561105457611053610c5a565b5b600084013567ffffffffffffffff81111561107257611071610c5f565b5b61107e8682870161100d565b935050602061108f86828701610ce3565b92505060406110a086828701610d19565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110df81610cf8565b82525050565b60006110f183836110d6565b60208301905092915050565b6000602082019050919050565b6000611115826110aa565b61111f81856110b5565b935061112a836110c6565b8060005b8381101561115b57815161114288826110e5565b975061114d836110fd565b92505060018101905061112e565b5085935050505092915050565b60006020820190508181036000830152611182818461110a565b905092915050565b6000602082840312156111a05761119f610c5a565b5b60006111ae84828501610ce3565b91505092915050565b6111c081610c64565b82525050565b60006020820190506111db60008301846111b7565b92915050565b6000815190506111f081610ccc565b92915050565b600061120182610cba565b9050919050565b611211816111f6565b811461121c57600080fd5b50565b60008151905061122e81611208565b92915050565b60008151905061124381610d02565b92915050565b6000806000806080858703121561126357611262610c5a565b5b6000611271878288016111e1565b94505060206112828782880161121f565b935050604061129387828801611234565b92505060606112a487828801611234565b91505092959194509250565b60006060820190506112c560008301866111b7565b6112d26020830185610dd8565b6112df6040830184610d81565b949350505050565b6000602082840312156112fd576112fc610c5a565b5b600061130b84828501611234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600067ffffffffffffffff82169050919050565b600061137c61137761137284611343565b610de7565b61134d565b9050919050565b61138c81611361565b82525050565b60006020820190506113a76000830184611383565b9291505056fea26469706673582212201ab8f3e8d83ebc6a7a28cc343212fca89b4982bab4de1b8f9e91d000b53858c364736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E3 DUP1 PUSH2 0x1F 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 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x929D1AC1 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xA91EE0DC EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x2019241B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x125 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD2E JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xDAB JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH2 0x41B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH2 0x42F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12D PUSH2 0x4BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xEAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0x1168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x5D7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x872 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x11C6 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST POP POP SWAP2 POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2E3 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x365 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x46852D0 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x320 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP2 SWAP1 PUSH2 0x11C6 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x40C SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x92E JUMP JUMPDEST PUSH2 0x42D PUSH1 0x0 PUSH2 0x9B5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x439 PUSH2 0x9F5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x45A PUSH2 0x83A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4B2 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A9 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x9B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4ED PUSH2 0x9FD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x539 JUMPI PUSH2 0x538 PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x567 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP6 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH2 0x5A0 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x1314 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP8 PUSH2 0x203 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x5B3 JUMPI PUSH2 0x5B2 PUSH2 0x1314 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x573 JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5DF PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 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 0x363C56730E510C61B9B1C8DA206585B5F5FA0EB1F76E05C2FCF82EE006FFF9F5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AD PUSH2 0xA25 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6FB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x730 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x73E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x775 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x7CD PUSH2 0xA4D JUMP JUMPDEST PUSH2 0x7D6 DUP7 PUSH2 0xA57 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x829 SWAP2 SWAP1 PUSH2 0x1392 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x845 PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x87A PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x884 PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8E8 PUSH2 0x4E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x936 PUSH2 0x9F5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x954 PUSH2 0x4E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9B3 JUMPI PUSH2 0x977 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BF PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x9F1 DUP3 PUSH2 0xA93 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA55 PUSH2 0xB6A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA5F PUSH2 0xB6A JUMP JUMPDEST PUSH2 0xA68 DUP2 PUSH2 0xBAA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9D PUSH2 0x9FD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xB72 PUSH2 0xC30 JUMP JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD7E6BCF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC24 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1B SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2D DUP2 PUSH2 0x9B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC3A PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC64 JUMP JUMPDEST DUP2 EQ PUSH2 0xC82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC94 DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC5 DUP3 PUSH2 0xC9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD5 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP2 EQ PUSH2 0xCE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCF2 DUP2 PUSH2 0xCCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD0B DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD28 DUP2 PUSH2 0xD02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD47 JUMPI PUSH2 0xD46 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD55 DUP7 DUP3 DUP8 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD66 DUP7 DUP3 DUP8 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD77 DUP7 DUP3 DUP8 ADD PUSH2 0xD19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xD8A DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0xDC0 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDCF DUP5 DUP3 DUP6 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDE1 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE0C PUSH2 0xE07 PUSH2 0xE02 DUP5 PUSH2 0xC9A JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH2 0xC9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE1E DUP3 PUSH2 0xDF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE30 DUP3 PUSH2 0xE13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE40 DUP2 PUSH2 0xE25 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xE5B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0xE68 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0xE75 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xD81 JUMP JUMPDEST PUSH2 0xE82 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE96 DUP3 PUSH2 0xE13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA6 DUP2 PUSH2 0xE8B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEC1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEDC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0xF30 DUP3 PUSH2 0xEE7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF4F JUMPI PUSH2 0xF4E PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF62 PUSH2 0xC50 JUMP JUMPDEST SWAP1 POP PUSH2 0xF6E DUP3 DUP3 PUSH2 0xF27 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF8D PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFB7 PUSH2 0xFB2 DUP5 PUSH2 0xF73 JUMP JUMPDEST PUSH2 0xF58 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xFDA JUMPI PUSH2 0xFD9 PUSH2 0xF9F JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1003 JUMPI DUP1 PUSH2 0xFEF DUP9 DUP3 PUSH2 0xC85 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFDC JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1022 JUMPI PUSH2 0x1021 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1032 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xFA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1054 JUMPI PUSH2 0x1053 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1072 JUMPI PUSH2 0x1071 PUSH2 0xC5F JUMP JUMPDEST JUMPDEST PUSH2 0x107E DUP7 DUP3 DUP8 ADD PUSH2 0x100D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x108F DUP7 DUP3 DUP8 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x10A0 DUP7 DUP3 DUP8 ADD PUSH2 0xD19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10DF DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10F1 DUP4 DUP4 PUSH2 0x10D6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1115 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH2 0x111F DUP2 DUP6 PUSH2 0x10B5 JUMP JUMPDEST SWAP4 POP PUSH2 0x112A DUP4 PUSH2 0x10C6 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x115B JUMPI DUP2 MLOAD PUSH2 0x1142 DUP9 DUP3 PUSH2 0x10E5 JUMP JUMPDEST SWAP8 POP PUSH2 0x114D DUP4 PUSH2 0x10FD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x112E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1182 DUP2 DUP5 PUSH2 0x110A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11A0 JUMPI PUSH2 0x119F PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11AE DUP5 DUP3 DUP6 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C0 DUP2 PUSH2 0xC64 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11DB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0xCCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1201 DUP3 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1211 DUP2 PUSH2 0x11F6 JUMP JUMPDEST DUP2 EQ PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x1208 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1243 DUP2 PUSH2 0xD02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1263 JUMPI PUSH2 0x1262 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1271 DUP8 DUP3 DUP9 ADD PUSH2 0x11E1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1282 DUP8 DUP3 DUP9 ADD PUSH2 0x121F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1293 DUP8 DUP3 DUP9 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x12A4 DUP8 DUP3 DUP9 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x12C5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x11B7 JUMP JUMPDEST PUSH2 0x12D2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x12DF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12FD JUMPI PUSH2 0x12FC PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x130B DUP5 DUP3 DUP6 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP2 POP 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 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C PUSH2 0x1377 PUSH2 0x1372 DUP5 PUSH2 0x1343 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH2 0x134D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138C DUP2 PUSH2 0x1361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13A7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xB8 RETURN 0xE8 0xD8 RETURNDATACOPY 0xBC PUSH11 0x7A28CC343212FCA89B4982 0xBA 0xB4 0xDE SHL DUP16 SWAP15 SWAP2 0xD0 STOP 0xB5 CODESIZE PC 0xC3 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"708:3634:39:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@__Ownable2Step_init_598":{"entryPoint":2637,"id":598,"parameterSlots":0,"returnSlots":0},"@__Ownable_init_752":{"entryPoint":2647,"id":752,"parameterSlots":1,"returnSlots":0},"@__Ownable_init_unchained_779":{"entryPoint":2986,"id":779,"parameterSlots":1,"returnSlots":0},"@_checkInitializing_1068":{"entryPoint":2922,"id":1068,"parameterSlots":0,"returnSlots":0},"@_checkOwner_820":{"entryPoint":2350,"id":820,"parameterSlots":0,"returnSlots":0},"@_getInitializableStorage_1145":{"entryPoint":2597,"id":1145,"parameterSlots":0,"returnSlots":1},"@_getOwnable2StepStorage_586":{"entryPoint":2667,"id":586,"parameterSlots":0,"returnSlots":1},"@_getOwnableStorage_723":{"entryPoint":2557,"id":723,"parameterSlots":0,"returnSlots":1},"@_isInitializing_1136":{"entryPoint":3120,"id":1136,"parameterSlots":0,"returnSlots":1},"@_msgSender_1174":{"entryPoint":2549,"id":1174,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_672":{"entryPoint":2485,"id":672,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_891":{"entryPoint":2707,"id":891,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_696":{"entryPoint":1071,"id":696,"parameterSlots":0,"returnSlots":0},"@domainHashToRecord_7868":{"entryPoint":876,"id":7868,"parameterSlots":1,"returnSlots":4},"@initialize_7847":{"entryPoint":1699,"id":7847,"parameterSlots":1,"returnSlots":0},"@isVerifiedForDomainHash_7967":{"entryPoint":515,"id":7967,"parameterSlots":3,"returnSlots":1},"@isVerifiedForMultipleDomainHashes_7926":{"entryPoint":1306,"id":7926,"parameterSlots":3,"returnSlots":1},"@owner_803":{"entryPoint":1250,"id":803,"parameterSlots":0,"returnSlots":1},"@pendingOwner_620":{"entryPoint":2106,"id":620,"parameterSlots":0,"returnSlots":1},"@registry_7824":{"entryPoint":1214,"id":7824,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_834":{"entryPoint":1051,"id":834,"parameterSlots":0,"returnSlots":0},"@setRegistry_7994":{"entryPoint":1495,"id":7994,"parameterSlots":1,"returnSlots":0},"@transferOwnership_648":{"entryPoint":2162,"id":648,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4004,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3299,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":4577,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4109,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3205,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IVerifier_$8474_fromMemory":{"entryPoint":4639,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":3353,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":4660,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4490,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_contract$_IVerifier_$8474t_uint256t_uint256_fromMemory":{"entryPoint":4681,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256":{"entryPoint":4155,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":3499,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_addresst_uint256":{"entryPoint":3374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":4839,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":4325,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3544,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":4362,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4535,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack":{"entryPoint":3741,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack":{"entryPoint":3639,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint64_fromStack":{"entryPoint":4995,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":4310,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3457,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3783,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":3654,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":4550,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed":{"entryPoint":4784,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed":{"entryPoint":3756,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":5010,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3472,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3928,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3152,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3955,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":4294,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":4266,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":4349,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":4277,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3258,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":3172,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IVerifier_$8474":{"entryPoint":4598,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":4931,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3226,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3320,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":4941,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISciRegistry_$8112_to_t_address":{"entryPoint":3723,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IVerifier_$8474_to_t_address":{"entryPoint":3621,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint64":{"entryPoint":4961,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3603,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3569,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":3879,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":3559,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":4884,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3832,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3999,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3167,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3162,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3815,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3276,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3182,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IVerifier_$8474":{"entryPoint":4616,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3330,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14393:44","nodeType":"YulBlock","src":"0:14393:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:32:44","nodeType":"YulBlock","src":"379:32:44","statements":[{"nativeSrc":"389:16:44","nodeType":"YulAssignment","src":"389:16:44","value":{"name":"value","nativeSrc":"400:5:44","nodeType":"YulIdentifier","src":"400:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"334:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:77:44"},{"body":{"nativeSrc":"460:79:44","nodeType":"YulBlock","src":"460:79:44","statements":[{"body":{"nativeSrc":"517:16:44","nodeType":"YulBlock","src":"517:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:44","nodeType":"YulLiteral","src":"526:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:44","nodeType":"YulLiteral","src":"529:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:44","nodeType":"YulIdentifier","src":"519:6:44"},"nativeSrc":"519:12:44","nodeType":"YulFunctionCall","src":"519:12:44"},"nativeSrc":"519:12:44","nodeType":"YulExpressionStatement","src":"519:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:44","nodeType":"YulIdentifier","src":"483:5:44"},{"arguments":[{"name":"value","nativeSrc":"508:5:44","nodeType":"YulIdentifier","src":"508:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"490:17:44","nodeType":"YulIdentifier","src":"490:17:44"},"nativeSrc":"490:24:44","nodeType":"YulFunctionCall","src":"490:24:44"}],"functionName":{"name":"eq","nativeSrc":"480:2:44","nodeType":"YulIdentifier","src":"480:2:44"},"nativeSrc":"480:35:44","nodeType":"YulFunctionCall","src":"480:35:44"}],"functionName":{"name":"iszero","nativeSrc":"473:6:44","nodeType":"YulIdentifier","src":"473:6:44"},"nativeSrc":"473:43:44","nodeType":"YulFunctionCall","src":"473:43:44"},"nativeSrc":"470:63:44","nodeType":"YulIf","src":"470:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"417:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:44","nodeType":"YulTypedName","src":"453:5:44","type":""}],"src":"417:122:44"},{"body":{"nativeSrc":"597:87:44","nodeType":"YulBlock","src":"597:87:44","statements":[{"nativeSrc":"607:29:44","nodeType":"YulAssignment","src":"607:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:44","nodeType":"YulIdentifier","src":"629:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:44","nodeType":"YulIdentifier","src":"616:12:44"},"nativeSrc":"616:20:44","nodeType":"YulFunctionCall","src":"616:20:44"},"variableNames":[{"name":"value","nativeSrc":"607:5:44","nodeType":"YulIdentifier","src":"607:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:44","nodeType":"YulIdentifier","src":"672:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"645:26:44","nodeType":"YulIdentifier","src":"645:26:44"},"nativeSrc":"645:33:44","nodeType":"YulFunctionCall","src":"645:33:44"},"nativeSrc":"645:33:44","nodeType":"YulExpressionStatement","src":"645:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"545:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:44","nodeType":"YulTypedName","src":"575:6:44","type":""},{"name":"end","nativeSrc":"583:3:44","nodeType":"YulTypedName","src":"583:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:44","nodeType":"YulTypedName","src":"591:5:44","type":""}],"src":"545:139:44"},{"body":{"nativeSrc":"735:81:44","nodeType":"YulBlock","src":"735:81:44","statements":[{"nativeSrc":"745:65:44","nodeType":"YulAssignment","src":"745:65:44","value":{"arguments":[{"name":"value","nativeSrc":"760:5:44","nodeType":"YulIdentifier","src":"760:5:44"},{"kind":"number","nativeSrc":"767:42:44","nodeType":"YulLiteral","src":"767:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"756:3:44","nodeType":"YulIdentifier","src":"756:3:44"},"nativeSrc":"756:54:44","nodeType":"YulFunctionCall","src":"756:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"745:7:44","nodeType":"YulIdentifier","src":"745:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"690:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"717:5:44","nodeType":"YulTypedName","src":"717:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"727:7:44","nodeType":"YulTypedName","src":"727:7:44","type":""}],"src":"690:126:44"},{"body":{"nativeSrc":"867:51:44","nodeType":"YulBlock","src":"867:51:44","statements":[{"nativeSrc":"877:35:44","nodeType":"YulAssignment","src":"877:35:44","value":{"arguments":[{"name":"value","nativeSrc":"906:5:44","nodeType":"YulIdentifier","src":"906:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"888:17:44","nodeType":"YulIdentifier","src":"888:17:44"},"nativeSrc":"888:24:44","nodeType":"YulFunctionCall","src":"888:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"877:7:44","nodeType":"YulIdentifier","src":"877:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"822:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"849:5:44","nodeType":"YulTypedName","src":"849:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"859:7:44","nodeType":"YulTypedName","src":"859:7:44","type":""}],"src":"822:96:44"},{"body":{"nativeSrc":"967:79:44","nodeType":"YulBlock","src":"967:79:44","statements":[{"body":{"nativeSrc":"1024:16:44","nodeType":"YulBlock","src":"1024:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:44","nodeType":"YulLiteral","src":"1033:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:44","nodeType":"YulLiteral","src":"1036:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:44","nodeType":"YulIdentifier","src":"1026:6:44"},"nativeSrc":"1026:12:44","nodeType":"YulFunctionCall","src":"1026:12:44"},"nativeSrc":"1026:12:44","nodeType":"YulExpressionStatement","src":"1026:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:44","nodeType":"YulIdentifier","src":"990:5:44"},{"arguments":[{"name":"value","nativeSrc":"1015:5:44","nodeType":"YulIdentifier","src":"1015:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"997:17:44","nodeType":"YulIdentifier","src":"997:17:44"},"nativeSrc":"997:24:44","nodeType":"YulFunctionCall","src":"997:24:44"}],"functionName":{"name":"eq","nativeSrc":"987:2:44","nodeType":"YulIdentifier","src":"987:2:44"},"nativeSrc":"987:35:44","nodeType":"YulFunctionCall","src":"987:35:44"}],"functionName":{"name":"iszero","nativeSrc":"980:6:44","nodeType":"YulIdentifier","src":"980:6:44"},"nativeSrc":"980:43:44","nodeType":"YulFunctionCall","src":"980:43:44"},"nativeSrc":"977:63:44","nodeType":"YulIf","src":"977:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"924:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:44","nodeType":"YulTypedName","src":"960:5:44","type":""}],"src":"924:122:44"},{"body":{"nativeSrc":"1104:87:44","nodeType":"YulBlock","src":"1104:87:44","statements":[{"nativeSrc":"1114:29:44","nodeType":"YulAssignment","src":"1114:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:44","nodeType":"YulIdentifier","src":"1136:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:44","nodeType":"YulIdentifier","src":"1123:12:44"},"nativeSrc":"1123:20:44","nodeType":"YulFunctionCall","src":"1123:20:44"},"variableNames":[{"name":"value","nativeSrc":"1114:5:44","nodeType":"YulIdentifier","src":"1114:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:44","nodeType":"YulIdentifier","src":"1179:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1152:26:44","nodeType":"YulIdentifier","src":"1152:26:44"},"nativeSrc":"1152:33:44","nodeType":"YulFunctionCall","src":"1152:33:44"},"nativeSrc":"1152:33:44","nodeType":"YulExpressionStatement","src":"1152:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"1052:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:44","nodeType":"YulTypedName","src":"1082:6:44","type":""},{"name":"end","nativeSrc":"1090:3:44","nodeType":"YulTypedName","src":"1090:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:44","nodeType":"YulTypedName","src":"1098:5:44","type":""}],"src":"1052:139:44"},{"body":{"nativeSrc":"1242:32:44","nodeType":"YulBlock","src":"1242:32:44","statements":[{"nativeSrc":"1252:16:44","nodeType":"YulAssignment","src":"1252:16:44","value":{"name":"value","nativeSrc":"1263:5:44","nodeType":"YulIdentifier","src":"1263:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1252:7:44","nodeType":"YulIdentifier","src":"1252:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1197:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1224:5:44","nodeType":"YulTypedName","src":"1224:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1234:7:44","nodeType":"YulTypedName","src":"1234:7:44","type":""}],"src":"1197:77:44"},{"body":{"nativeSrc":"1323:79:44","nodeType":"YulBlock","src":"1323:79:44","statements":[{"body":{"nativeSrc":"1380:16:44","nodeType":"YulBlock","src":"1380:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1389:1:44","nodeType":"YulLiteral","src":"1389:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1392:1:44","nodeType":"YulLiteral","src":"1392:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1382:6:44","nodeType":"YulIdentifier","src":"1382:6:44"},"nativeSrc":"1382:12:44","nodeType":"YulFunctionCall","src":"1382:12:44"},"nativeSrc":"1382:12:44","nodeType":"YulExpressionStatement","src":"1382:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1346:5:44","nodeType":"YulIdentifier","src":"1346:5:44"},{"arguments":[{"name":"value","nativeSrc":"1371:5:44","nodeType":"YulIdentifier","src":"1371:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1353:17:44","nodeType":"YulIdentifier","src":"1353:17:44"},"nativeSrc":"1353:24:44","nodeType":"YulFunctionCall","src":"1353:24:44"}],"functionName":{"name":"eq","nativeSrc":"1343:2:44","nodeType":"YulIdentifier","src":"1343:2:44"},"nativeSrc":"1343:35:44","nodeType":"YulFunctionCall","src":"1343:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1336:6:44","nodeType":"YulIdentifier","src":"1336:6:44"},"nativeSrc":"1336:43:44","nodeType":"YulFunctionCall","src":"1336:43:44"},"nativeSrc":"1333:63:44","nodeType":"YulIf","src":"1333:63:44"}]},"name":"validator_revert_t_uint256","nativeSrc":"1280:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1316:5:44","nodeType":"YulTypedName","src":"1316:5:44","type":""}],"src":"1280:122:44"},{"body":{"nativeSrc":"1460:87:44","nodeType":"YulBlock","src":"1460:87:44","statements":[{"nativeSrc":"1470:29:44","nodeType":"YulAssignment","src":"1470:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1492:6:44","nodeType":"YulIdentifier","src":"1492:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1479:12:44","nodeType":"YulIdentifier","src":"1479:12:44"},"nativeSrc":"1479:20:44","nodeType":"YulFunctionCall","src":"1479:20:44"},"variableNames":[{"name":"value","nativeSrc":"1470:5:44","nodeType":"YulIdentifier","src":"1470:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1535:5:44","nodeType":"YulIdentifier","src":"1535:5:44"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1508:26:44","nodeType":"YulIdentifier","src":"1508:26:44"},"nativeSrc":"1508:33:44","nodeType":"YulFunctionCall","src":"1508:33:44"},"nativeSrc":"1508:33:44","nodeType":"YulExpressionStatement","src":"1508:33:44"}]},"name":"abi_decode_t_uint256","nativeSrc":"1408:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1438:6:44","nodeType":"YulTypedName","src":"1438:6:44","type":""},{"name":"end","nativeSrc":"1446:3:44","nodeType":"YulTypedName","src":"1446:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1454:5:44","nodeType":"YulTypedName","src":"1454:5:44","type":""}],"src":"1408:139:44"},{"body":{"nativeSrc":"1653:519:44","nodeType":"YulBlock","src":"1653:519:44","statements":[{"body":{"nativeSrc":"1699:83:44","nodeType":"YulBlock","src":"1699:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1701:77:44","nodeType":"YulIdentifier","src":"1701:77:44"},"nativeSrc":"1701:79:44","nodeType":"YulFunctionCall","src":"1701:79:44"},"nativeSrc":"1701:79:44","nodeType":"YulExpressionStatement","src":"1701:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1674:7:44","nodeType":"YulIdentifier","src":"1674:7:44"},{"name":"headStart","nativeSrc":"1683:9:44","nodeType":"YulIdentifier","src":"1683:9:44"}],"functionName":{"name":"sub","nativeSrc":"1670:3:44","nodeType":"YulIdentifier","src":"1670:3:44"},"nativeSrc":"1670:23:44","nodeType":"YulFunctionCall","src":"1670:23:44"},{"kind":"number","nativeSrc":"1695:2:44","nodeType":"YulLiteral","src":"1695:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1666:3:44","nodeType":"YulIdentifier","src":"1666:3:44"},"nativeSrc":"1666:32:44","nodeType":"YulFunctionCall","src":"1666:32:44"},"nativeSrc":"1663:119:44","nodeType":"YulIf","src":"1663:119:44"},{"nativeSrc":"1792:117:44","nodeType":"YulBlock","src":"1792:117:44","statements":[{"nativeSrc":"1807:15:44","nodeType":"YulVariableDeclaration","src":"1807:15:44","value":{"kind":"number","nativeSrc":"1821:1:44","nodeType":"YulLiteral","src":"1821:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1811:6:44","nodeType":"YulTypedName","src":"1811:6:44","type":""}]},{"nativeSrc":"1836:63:44","nodeType":"YulAssignment","src":"1836:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1871:9:44","nodeType":"YulIdentifier","src":"1871:9:44"},{"name":"offset","nativeSrc":"1882:6:44","nodeType":"YulIdentifier","src":"1882:6:44"}],"functionName":{"name":"add","nativeSrc":"1867:3:44","nodeType":"YulIdentifier","src":"1867:3:44"},"nativeSrc":"1867:22:44","nodeType":"YulFunctionCall","src":"1867:22:44"},{"name":"dataEnd","nativeSrc":"1891:7:44","nodeType":"YulIdentifier","src":"1891:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"1846:20:44","nodeType":"YulIdentifier","src":"1846:20:44"},"nativeSrc":"1846:53:44","nodeType":"YulFunctionCall","src":"1846:53:44"},"variableNames":[{"name":"value0","nativeSrc":"1836:6:44","nodeType":"YulIdentifier","src":"1836:6:44"}]}]},{"nativeSrc":"1919:118:44","nodeType":"YulBlock","src":"1919:118:44","statements":[{"nativeSrc":"1934:16:44","nodeType":"YulVariableDeclaration","src":"1934:16:44","value":{"kind":"number","nativeSrc":"1948:2:44","nodeType":"YulLiteral","src":"1948:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1938:6:44","nodeType":"YulTypedName","src":"1938:6:44","type":""}]},{"nativeSrc":"1964:63:44","nodeType":"YulAssignment","src":"1964:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1999:9:44","nodeType":"YulIdentifier","src":"1999:9:44"},{"name":"offset","nativeSrc":"2010:6:44","nodeType":"YulIdentifier","src":"2010:6:44"}],"functionName":{"name":"add","nativeSrc":"1995:3:44","nodeType":"YulIdentifier","src":"1995:3:44"},"nativeSrc":"1995:22:44","nodeType":"YulFunctionCall","src":"1995:22:44"},{"name":"dataEnd","nativeSrc":"2019:7:44","nodeType":"YulIdentifier","src":"2019:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1974:20:44","nodeType":"YulIdentifier","src":"1974:20:44"},"nativeSrc":"1974:53:44","nodeType":"YulFunctionCall","src":"1974:53:44"},"variableNames":[{"name":"value1","nativeSrc":"1964:6:44","nodeType":"YulIdentifier","src":"1964:6:44"}]}]},{"nativeSrc":"2047:118:44","nodeType":"YulBlock","src":"2047:118:44","statements":[{"nativeSrc":"2062:16:44","nodeType":"YulVariableDeclaration","src":"2062:16:44","value":{"kind":"number","nativeSrc":"2076:2:44","nodeType":"YulLiteral","src":"2076:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2066:6:44","nodeType":"YulTypedName","src":"2066:6:44","type":""}]},{"nativeSrc":"2092:63:44","nodeType":"YulAssignment","src":"2092:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2127:9:44","nodeType":"YulIdentifier","src":"2127:9:44"},{"name":"offset","nativeSrc":"2138:6:44","nodeType":"YulIdentifier","src":"2138:6:44"}],"functionName":{"name":"add","nativeSrc":"2123:3:44","nodeType":"YulIdentifier","src":"2123:3:44"},"nativeSrc":"2123:22:44","nodeType":"YulFunctionCall","src":"2123:22:44"},{"name":"dataEnd","nativeSrc":"2147:7:44","nodeType":"YulIdentifier","src":"2147:7:44"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2102:20:44","nodeType":"YulIdentifier","src":"2102:20:44"},"nativeSrc":"2102:53:44","nodeType":"YulFunctionCall","src":"2102:53:44"},"variableNames":[{"name":"value2","nativeSrc":"2092:6:44","nodeType":"YulIdentifier","src":"2092:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nativeSrc":"1553:619:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1607:9:44","nodeType":"YulTypedName","src":"1607:9:44","type":""},{"name":"dataEnd","nativeSrc":"1618:7:44","nodeType":"YulTypedName","src":"1618:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1630:6:44","nodeType":"YulTypedName","src":"1630:6:44","type":""},{"name":"value1","nativeSrc":"1638:6:44","nodeType":"YulTypedName","src":"1638:6:44","type":""},{"name":"value2","nativeSrc":"1646:6:44","nodeType":"YulTypedName","src":"1646:6:44","type":""}],"src":"1553:619:44"},{"body":{"nativeSrc":"2243:53:44","nodeType":"YulBlock","src":"2243:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2260:3:44","nodeType":"YulIdentifier","src":"2260:3:44"},{"arguments":[{"name":"value","nativeSrc":"2283:5:44","nodeType":"YulIdentifier","src":"2283:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2265:17:44","nodeType":"YulIdentifier","src":"2265:17:44"},"nativeSrc":"2265:24:44","nodeType":"YulFunctionCall","src":"2265:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2253:6:44","nodeType":"YulIdentifier","src":"2253:6:44"},"nativeSrc":"2253:37:44","nodeType":"YulFunctionCall","src":"2253:37:44"},"nativeSrc":"2253:37:44","nodeType":"YulExpressionStatement","src":"2253:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2178:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2231:5:44","nodeType":"YulTypedName","src":"2231:5:44","type":""},{"name":"pos","nativeSrc":"2238:3:44","nodeType":"YulTypedName","src":"2238:3:44","type":""}],"src":"2178:118:44"},{"body":{"nativeSrc":"2400:124:44","nodeType":"YulBlock","src":"2400:124:44","statements":[{"nativeSrc":"2410:26:44","nodeType":"YulAssignment","src":"2410:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2422:9:44","nodeType":"YulIdentifier","src":"2422:9:44"},{"kind":"number","nativeSrc":"2433:2:44","nodeType":"YulLiteral","src":"2433:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2418:3:44","nodeType":"YulIdentifier","src":"2418:3:44"},"nativeSrc":"2418:18:44","nodeType":"YulFunctionCall","src":"2418:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2410:4:44","nodeType":"YulIdentifier","src":"2410:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2490:6:44","nodeType":"YulIdentifier","src":"2490:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2503:9:44","nodeType":"YulIdentifier","src":"2503:9:44"},{"kind":"number","nativeSrc":"2514:1:44","nodeType":"YulLiteral","src":"2514:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2499:3:44","nodeType":"YulIdentifier","src":"2499:3:44"},"nativeSrc":"2499:17:44","nodeType":"YulFunctionCall","src":"2499:17:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2446:43:44","nodeType":"YulIdentifier","src":"2446:43:44"},"nativeSrc":"2446:71:44","nodeType":"YulFunctionCall","src":"2446:71:44"},"nativeSrc":"2446:71:44","nodeType":"YulExpressionStatement","src":"2446:71:44"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2302:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2372:9:44","nodeType":"YulTypedName","src":"2372:9:44","type":""},{"name":"value0","nativeSrc":"2384:6:44","nodeType":"YulTypedName","src":"2384:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2395:4:44","nodeType":"YulTypedName","src":"2395:4:44","type":""}],"src":"2302:222:44"},{"body":{"nativeSrc":"2596:263:44","nodeType":"YulBlock","src":"2596:263:44","statements":[{"body":{"nativeSrc":"2642:83:44","nodeType":"YulBlock","src":"2642:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2644:77:44","nodeType":"YulIdentifier","src":"2644:77:44"},"nativeSrc":"2644:79:44","nodeType":"YulFunctionCall","src":"2644:79:44"},"nativeSrc":"2644:79:44","nodeType":"YulExpressionStatement","src":"2644:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2617:7:44","nodeType":"YulIdentifier","src":"2617:7:44"},{"name":"headStart","nativeSrc":"2626:9:44","nodeType":"YulIdentifier","src":"2626:9:44"}],"functionName":{"name":"sub","nativeSrc":"2613:3:44","nodeType":"YulIdentifier","src":"2613:3:44"},"nativeSrc":"2613:23:44","nodeType":"YulFunctionCall","src":"2613:23:44"},{"kind":"number","nativeSrc":"2638:2:44","nodeType":"YulLiteral","src":"2638:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2609:3:44","nodeType":"YulIdentifier","src":"2609:3:44"},"nativeSrc":"2609:32:44","nodeType":"YulFunctionCall","src":"2609:32:44"},"nativeSrc":"2606:119:44","nodeType":"YulIf","src":"2606:119:44"},{"nativeSrc":"2735:117:44","nodeType":"YulBlock","src":"2735:117:44","statements":[{"nativeSrc":"2750:15:44","nodeType":"YulVariableDeclaration","src":"2750:15:44","value":{"kind":"number","nativeSrc":"2764:1:44","nodeType":"YulLiteral","src":"2764:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2754:6:44","nodeType":"YulTypedName","src":"2754:6:44","type":""}]},{"nativeSrc":"2779:63:44","nodeType":"YulAssignment","src":"2779:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2814:9:44","nodeType":"YulIdentifier","src":"2814:9:44"},{"name":"offset","nativeSrc":"2825:6:44","nodeType":"YulIdentifier","src":"2825:6:44"}],"functionName":{"name":"add","nativeSrc":"2810:3:44","nodeType":"YulIdentifier","src":"2810:3:44"},"nativeSrc":"2810:22:44","nodeType":"YulFunctionCall","src":"2810:22:44"},{"name":"dataEnd","nativeSrc":"2834:7:44","nodeType":"YulIdentifier","src":"2834:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2789:20:44","nodeType":"YulIdentifier","src":"2789:20:44"},"nativeSrc":"2789:53:44","nodeType":"YulFunctionCall","src":"2789:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2779:6:44","nodeType":"YulIdentifier","src":"2779:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"2530:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2566:9:44","nodeType":"YulTypedName","src":"2566:9:44","type":""},{"name":"dataEnd","nativeSrc":"2577:7:44","nodeType":"YulTypedName","src":"2577:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2589:6:44","nodeType":"YulTypedName","src":"2589:6:44","type":""}],"src":"2530:329:44"},{"body":{"nativeSrc":"2930:53:44","nodeType":"YulBlock","src":"2930:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2947:3:44","nodeType":"YulIdentifier","src":"2947:3:44"},{"arguments":[{"name":"value","nativeSrc":"2970:5:44","nodeType":"YulIdentifier","src":"2970:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2952:17:44","nodeType":"YulIdentifier","src":"2952:17:44"},"nativeSrc":"2952:24:44","nodeType":"YulFunctionCall","src":"2952:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2940:6:44","nodeType":"YulIdentifier","src":"2940:6:44"},"nativeSrc":"2940:37:44","nodeType":"YulFunctionCall","src":"2940:37:44"},"nativeSrc":"2940:37:44","nodeType":"YulExpressionStatement","src":"2940:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2865:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2918:5:44","nodeType":"YulTypedName","src":"2918:5:44","type":""},{"name":"pos","nativeSrc":"2925:3:44","nodeType":"YulTypedName","src":"2925:3:44","type":""}],"src":"2865:118:44"},{"body":{"nativeSrc":"3021:28:44","nodeType":"YulBlock","src":"3021:28:44","statements":[{"nativeSrc":"3031:12:44","nodeType":"YulAssignment","src":"3031:12:44","value":{"name":"value","nativeSrc":"3038:5:44","nodeType":"YulIdentifier","src":"3038:5:44"},"variableNames":[{"name":"ret","nativeSrc":"3031:3:44","nodeType":"YulIdentifier","src":"3031:3:44"}]}]},"name":"identity","nativeSrc":"2989:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3007:5:44","nodeType":"YulTypedName","src":"3007:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3017:3:44","nodeType":"YulTypedName","src":"3017:3:44","type":""}],"src":"2989:60:44"},{"body":{"nativeSrc":"3115:82:44","nodeType":"YulBlock","src":"3115:82:44","statements":[{"nativeSrc":"3125:66:44","nodeType":"YulAssignment","src":"3125:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3183:5:44","nodeType":"YulIdentifier","src":"3183:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3165:17:44","nodeType":"YulIdentifier","src":"3165:17:44"},"nativeSrc":"3165:24:44","nodeType":"YulFunctionCall","src":"3165:24:44"}],"functionName":{"name":"identity","nativeSrc":"3156:8:44","nodeType":"YulIdentifier","src":"3156:8:44"},"nativeSrc":"3156:34:44","nodeType":"YulFunctionCall","src":"3156:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3138:17:44","nodeType":"YulIdentifier","src":"3138:17:44"},"nativeSrc":"3138:53:44","nodeType":"YulFunctionCall","src":"3138:53:44"},"variableNames":[{"name":"converted","nativeSrc":"3125:9:44","nodeType":"YulIdentifier","src":"3125:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3055:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3095:5:44","nodeType":"YulTypedName","src":"3095:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3105:9:44","nodeType":"YulTypedName","src":"3105:9:44","type":""}],"src":"3055:142:44"},{"body":{"nativeSrc":"3263:66:44","nodeType":"YulBlock","src":"3263:66:44","statements":[{"nativeSrc":"3273:50:44","nodeType":"YulAssignment","src":"3273:50:44","value":{"arguments":[{"name":"value","nativeSrc":"3317:5:44","nodeType":"YulIdentifier","src":"3317:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3286:30:44","nodeType":"YulIdentifier","src":"3286:30:44"},"nativeSrc":"3286:37:44","nodeType":"YulFunctionCall","src":"3286:37:44"},"variableNames":[{"name":"converted","nativeSrc":"3273:9:44","nodeType":"YulIdentifier","src":"3273:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"3203:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3243:5:44","nodeType":"YulTypedName","src":"3243:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3253:9:44","nodeType":"YulTypedName","src":"3253:9:44","type":""}],"src":"3203:126:44"},{"body":{"nativeSrc":"3413:66:44","nodeType":"YulBlock","src":"3413:66:44","statements":[{"nativeSrc":"3423:50:44","nodeType":"YulAssignment","src":"3423:50:44","value":{"arguments":[{"name":"value","nativeSrc":"3467:5:44","nodeType":"YulIdentifier","src":"3467:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3436:30:44","nodeType":"YulIdentifier","src":"3436:30:44"},"nativeSrc":"3436:37:44","nodeType":"YulFunctionCall","src":"3436:37:44"},"variableNames":[{"name":"converted","nativeSrc":"3423:9:44","nodeType":"YulIdentifier","src":"3423:9:44"}]}]},"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"3335:144:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3393:5:44","nodeType":"YulTypedName","src":"3393:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3403:9:44","nodeType":"YulTypedName","src":"3403:9:44","type":""}],"src":"3335:144:44"},{"body":{"nativeSrc":"3568:84:44","nodeType":"YulBlock","src":"3568:84:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3585:3:44","nodeType":"YulIdentifier","src":"3585:3:44"},{"arguments":[{"name":"value","nativeSrc":"3639:5:44","nodeType":"YulIdentifier","src":"3639:5:44"}],"functionName":{"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"3590:48:44","nodeType":"YulIdentifier","src":"3590:48:44"},"nativeSrc":"3590:55:44","nodeType":"YulFunctionCall","src":"3590:55:44"}],"functionName":{"name":"mstore","nativeSrc":"3578:6:44","nodeType":"YulIdentifier","src":"3578:6:44"},"nativeSrc":"3578:68:44","nodeType":"YulFunctionCall","src":"3578:68:44"},"nativeSrc":"3578:68:44","nodeType":"YulExpressionStatement","src":"3578:68:44"}]},"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"3485:167:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3556:5:44","nodeType":"YulTypedName","src":"3556:5:44","type":""},{"name":"pos","nativeSrc":"3563:3:44","nodeType":"YulTypedName","src":"3563:3:44","type":""}],"src":"3485:167:44"},{"body":{"nativeSrc":"3858:389:44","nodeType":"YulBlock","src":"3858:389:44","statements":[{"nativeSrc":"3868:27:44","nodeType":"YulAssignment","src":"3868:27:44","value":{"arguments":[{"name":"headStart","nativeSrc":"3880:9:44","nodeType":"YulIdentifier","src":"3880:9:44"},{"kind":"number","nativeSrc":"3891:3:44","nodeType":"YulLiteral","src":"3891:3:44","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3876:3:44","nodeType":"YulIdentifier","src":"3876:3:44"},"nativeSrc":"3876:19:44","nodeType":"YulFunctionCall","src":"3876:19:44"},"variableNames":[{"name":"tail","nativeSrc":"3868:4:44","nodeType":"YulIdentifier","src":"3868:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3949:6:44","nodeType":"YulIdentifier","src":"3949:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"3962:9:44","nodeType":"YulIdentifier","src":"3962:9:44"},{"kind":"number","nativeSrc":"3973:1:44","nodeType":"YulLiteral","src":"3973:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3958:3:44","nodeType":"YulIdentifier","src":"3958:3:44"},"nativeSrc":"3958:17:44","nodeType":"YulFunctionCall","src":"3958:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3905:43:44","nodeType":"YulIdentifier","src":"3905:43:44"},"nativeSrc":"3905:71:44","nodeType":"YulFunctionCall","src":"3905:71:44"},"nativeSrc":"3905:71:44","nodeType":"YulExpressionStatement","src":"3905:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"4048:6:44","nodeType":"YulIdentifier","src":"4048:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4061:9:44","nodeType":"YulIdentifier","src":"4061:9:44"},{"kind":"number","nativeSrc":"4072:2:44","nodeType":"YulLiteral","src":"4072:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4057:3:44","nodeType":"YulIdentifier","src":"4057:3:44"},"nativeSrc":"4057:18:44","nodeType":"YulFunctionCall","src":"4057:18:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"3986:61:44","nodeType":"YulIdentifier","src":"3986:61:44"},"nativeSrc":"3986:90:44","nodeType":"YulFunctionCall","src":"3986:90:44"},"nativeSrc":"3986:90:44","nodeType":"YulExpressionStatement","src":"3986:90:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"4130:6:44","nodeType":"YulIdentifier","src":"4130:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4143:9:44","nodeType":"YulIdentifier","src":"4143:9:44"},{"kind":"number","nativeSrc":"4154:2:44","nodeType":"YulLiteral","src":"4154:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4139:3:44","nodeType":"YulIdentifier","src":"4139:3:44"},"nativeSrc":"4139:18:44","nodeType":"YulFunctionCall","src":"4139:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4086:43:44","nodeType":"YulIdentifier","src":"4086:43:44"},"nativeSrc":"4086:72:44","nodeType":"YulFunctionCall","src":"4086:72:44"},"nativeSrc":"4086:72:44","nodeType":"YulExpressionStatement","src":"4086:72:44"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"4212:6:44","nodeType":"YulIdentifier","src":"4212:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4225:9:44","nodeType":"YulIdentifier","src":"4225:9:44"},{"kind":"number","nativeSrc":"4236:2:44","nodeType":"YulLiteral","src":"4236:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4221:3:44","nodeType":"YulIdentifier","src":"4221:3:44"},"nativeSrc":"4221:18:44","nodeType":"YulFunctionCall","src":"4221:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4168:43:44","nodeType":"YulIdentifier","src":"4168:43:44"},"nativeSrc":"4168:72:44","nodeType":"YulFunctionCall","src":"4168:72:44"},"nativeSrc":"4168:72:44","nodeType":"YulExpressionStatement","src":"4168:72:44"}]},"name":"abi_encode_tuple_t_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"3658:589:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3806:9:44","nodeType":"YulTypedName","src":"3806:9:44","type":""},{"name":"value3","nativeSrc":"3818:6:44","nodeType":"YulTypedName","src":"3818:6:44","type":""},{"name":"value2","nativeSrc":"3826:6:44","nodeType":"YulTypedName","src":"3826:6:44","type":""},{"name":"value1","nativeSrc":"3834:6:44","nodeType":"YulTypedName","src":"3834:6:44","type":""},{"name":"value0","nativeSrc":"3842:6:44","nodeType":"YulTypedName","src":"3842:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3853:4:44","nodeType":"YulTypedName","src":"3853:4:44","type":""}],"src":"3658:589:44"},{"body":{"nativeSrc":"4334:66:44","nodeType":"YulBlock","src":"4334:66:44","statements":[{"nativeSrc":"4344:50:44","nodeType":"YulAssignment","src":"4344:50:44","value":{"arguments":[{"name":"value","nativeSrc":"4388:5:44","nodeType":"YulIdentifier","src":"4388:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4357:30:44","nodeType":"YulIdentifier","src":"4357:30:44"},"nativeSrc":"4357:37:44","nodeType":"YulFunctionCall","src":"4357:37:44"},"variableNames":[{"name":"converted","nativeSrc":"4344:9:44","nodeType":"YulIdentifier","src":"4344:9:44"}]}]},"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"4253:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4314:5:44","nodeType":"YulTypedName","src":"4314:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4324:9:44","nodeType":"YulTypedName","src":"4324:9:44","type":""}],"src":"4253:147:44"},{"body":{"nativeSrc":"4492:87:44","nodeType":"YulBlock","src":"4492:87:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4509:3:44","nodeType":"YulIdentifier","src":"4509:3:44"},{"arguments":[{"name":"value","nativeSrc":"4566:5:44","nodeType":"YulIdentifier","src":"4566:5:44"}],"functionName":{"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"4514:51:44","nodeType":"YulIdentifier","src":"4514:51:44"},"nativeSrc":"4514:58:44","nodeType":"YulFunctionCall","src":"4514:58:44"}],"functionName":{"name":"mstore","nativeSrc":"4502:6:44","nodeType":"YulIdentifier","src":"4502:6:44"},"nativeSrc":"4502:71:44","nodeType":"YulFunctionCall","src":"4502:71:44"},"nativeSrc":"4502:71:44","nodeType":"YulExpressionStatement","src":"4502:71:44"}]},"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"4406:173:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4480:5:44","nodeType":"YulTypedName","src":"4480:5:44","type":""},{"name":"pos","nativeSrc":"4487:3:44","nodeType":"YulTypedName","src":"4487:3:44","type":""}],"src":"4406:173:44"},{"body":{"nativeSrc":"4704:145:44","nodeType":"YulBlock","src":"4704:145:44","statements":[{"nativeSrc":"4714:26:44","nodeType":"YulAssignment","src":"4714:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4726:9:44","nodeType":"YulIdentifier","src":"4726:9:44"},{"kind":"number","nativeSrc":"4737:2:44","nodeType":"YulLiteral","src":"4737:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4722:3:44","nodeType":"YulIdentifier","src":"4722:3:44"},"nativeSrc":"4722:18:44","nodeType":"YulFunctionCall","src":"4722:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4714:4:44","nodeType":"YulIdentifier","src":"4714:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4815:6:44","nodeType":"YulIdentifier","src":"4815:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4828:9:44","nodeType":"YulIdentifier","src":"4828:9:44"},{"kind":"number","nativeSrc":"4839:1:44","nodeType":"YulLiteral","src":"4839:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4824:3:44","nodeType":"YulIdentifier","src":"4824:3:44"},"nativeSrc":"4824:17:44","nodeType":"YulFunctionCall","src":"4824:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"4750:64:44","nodeType":"YulIdentifier","src":"4750:64:44"},"nativeSrc":"4750:92:44","nodeType":"YulFunctionCall","src":"4750:92:44"},"nativeSrc":"4750:92:44","nodeType":"YulExpressionStatement","src":"4750:92:44"}]},"name":"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed","nativeSrc":"4585:264:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4676:9:44","nodeType":"YulTypedName","src":"4676:9:44","type":""},{"name":"value0","nativeSrc":"4688:6:44","nodeType":"YulTypedName","src":"4688:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4699:4:44","nodeType":"YulTypedName","src":"4699:4:44","type":""}],"src":"4585:264:44"},{"body":{"nativeSrc":"4953:124:44","nodeType":"YulBlock","src":"4953:124:44","statements":[{"nativeSrc":"4963:26:44","nodeType":"YulAssignment","src":"4963:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4975:9:44","nodeType":"YulIdentifier","src":"4975:9:44"},{"kind":"number","nativeSrc":"4986:2:44","nodeType":"YulLiteral","src":"4986:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4971:3:44","nodeType":"YulIdentifier","src":"4971:3:44"},"nativeSrc":"4971:18:44","nodeType":"YulFunctionCall","src":"4971:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4963:4:44","nodeType":"YulIdentifier","src":"4963:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5043:6:44","nodeType":"YulIdentifier","src":"5043:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5056:9:44","nodeType":"YulIdentifier","src":"5056:9:44"},{"kind":"number","nativeSrc":"5067:1:44","nodeType":"YulLiteral","src":"5067:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5052:3:44","nodeType":"YulIdentifier","src":"5052:3:44"},"nativeSrc":"5052:17:44","nodeType":"YulFunctionCall","src":"5052:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4999:43:44","nodeType":"YulIdentifier","src":"4999:43:44"},"nativeSrc":"4999:71:44","nodeType":"YulFunctionCall","src":"4999:71:44"},"nativeSrc":"4999:71:44","nodeType":"YulExpressionStatement","src":"4999:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"4855:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4925:9:44","nodeType":"YulTypedName","src":"4925:9:44","type":""},{"name":"value0","nativeSrc":"4937:6:44","nodeType":"YulTypedName","src":"4937:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4948:4:44","nodeType":"YulTypedName","src":"4948:4:44","type":""}],"src":"4855:222:44"},{"body":{"nativeSrc":"5172:28:44","nodeType":"YulBlock","src":"5172:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5189:1:44","nodeType":"YulLiteral","src":"5189:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5192:1:44","nodeType":"YulLiteral","src":"5192:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5182:6:44","nodeType":"YulIdentifier","src":"5182:6:44"},"nativeSrc":"5182:12:44","nodeType":"YulFunctionCall","src":"5182:12:44"},"nativeSrc":"5182:12:44","nodeType":"YulExpressionStatement","src":"5182:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5083:117:44","nodeType":"YulFunctionDefinition","src":"5083:117:44"},{"body":{"nativeSrc":"5254:54:44","nodeType":"YulBlock","src":"5254:54:44","statements":[{"nativeSrc":"5264:38:44","nodeType":"YulAssignment","src":"5264:38:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5282:5:44","nodeType":"YulIdentifier","src":"5282:5:44"},{"kind":"number","nativeSrc":"5289:2:44","nodeType":"YulLiteral","src":"5289:2:44","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5278:3:44","nodeType":"YulIdentifier","src":"5278:3:44"},"nativeSrc":"5278:14:44","nodeType":"YulFunctionCall","src":"5278:14:44"},{"arguments":[{"kind":"number","nativeSrc":"5298:2:44","nodeType":"YulLiteral","src":"5298:2:44","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5294:3:44","nodeType":"YulIdentifier","src":"5294:3:44"},"nativeSrc":"5294:7:44","nodeType":"YulFunctionCall","src":"5294:7:44"}],"functionName":{"name":"and","nativeSrc":"5274:3:44","nodeType":"YulIdentifier","src":"5274:3:44"},"nativeSrc":"5274:28:44","nodeType":"YulFunctionCall","src":"5274:28:44"},"variableNames":[{"name":"result","nativeSrc":"5264:6:44","nodeType":"YulIdentifier","src":"5264:6:44"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"5206:102:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5237:5:44","nodeType":"YulTypedName","src":"5237:5:44","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5247:6:44","nodeType":"YulTypedName","src":"5247:6:44","type":""}],"src":"5206:102:44"},{"body":{"nativeSrc":"5342:152:44","nodeType":"YulBlock","src":"5342:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5359:1:44","nodeType":"YulLiteral","src":"5359:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5362:77:44","nodeType":"YulLiteral","src":"5362:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5352:6:44","nodeType":"YulIdentifier","src":"5352:6:44"},"nativeSrc":"5352:88:44","nodeType":"YulFunctionCall","src":"5352:88:44"},"nativeSrc":"5352:88:44","nodeType":"YulExpressionStatement","src":"5352:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5456:1:44","nodeType":"YulLiteral","src":"5456:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"5459:4:44","nodeType":"YulLiteral","src":"5459:4:44","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5449:6:44","nodeType":"YulIdentifier","src":"5449:6:44"},"nativeSrc":"5449:15:44","nodeType":"YulFunctionCall","src":"5449:15:44"},"nativeSrc":"5449:15:44","nodeType":"YulExpressionStatement","src":"5449:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5480:1:44","nodeType":"YulLiteral","src":"5480:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"5483:4:44","nodeType":"YulLiteral","src":"5483:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5473:6:44","nodeType":"YulIdentifier","src":"5473:6:44"},"nativeSrc":"5473:15:44","nodeType":"YulFunctionCall","src":"5473:15:44"},"nativeSrc":"5473:15:44","nodeType":"YulExpressionStatement","src":"5473:15:44"}]},"name":"panic_error_0x41","nativeSrc":"5314:180:44","nodeType":"YulFunctionDefinition","src":"5314:180:44"},{"body":{"nativeSrc":"5543:238:44","nodeType":"YulBlock","src":"5543:238:44","statements":[{"nativeSrc":"5553:58:44","nodeType":"YulVariableDeclaration","src":"5553:58:44","value":{"arguments":[{"name":"memPtr","nativeSrc":"5575:6:44","nodeType":"YulIdentifier","src":"5575:6:44"},{"arguments":[{"name":"size","nativeSrc":"5605:4:44","nodeType":"YulIdentifier","src":"5605:4:44"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5583:21:44","nodeType":"YulIdentifier","src":"5583:21:44"},"nativeSrc":"5583:27:44","nodeType":"YulFunctionCall","src":"5583:27:44"}],"functionName":{"name":"add","nativeSrc":"5571:3:44","nodeType":"YulIdentifier","src":"5571:3:44"},"nativeSrc":"5571:40:44","nodeType":"YulFunctionCall","src":"5571:40:44"},"variables":[{"name":"newFreePtr","nativeSrc":"5557:10:44","nodeType":"YulTypedName","src":"5557:10:44","type":""}]},{"body":{"nativeSrc":"5722:22:44","nodeType":"YulBlock","src":"5722:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5724:16:44","nodeType":"YulIdentifier","src":"5724:16:44"},"nativeSrc":"5724:18:44","nodeType":"YulFunctionCall","src":"5724:18:44"},"nativeSrc":"5724:18:44","nodeType":"YulExpressionStatement","src":"5724:18:44"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5665:10:44","nodeType":"YulIdentifier","src":"5665:10:44"},{"kind":"number","nativeSrc":"5677:18:44","nodeType":"YulLiteral","src":"5677:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5662:2:44","nodeType":"YulIdentifier","src":"5662:2:44"},"nativeSrc":"5662:34:44","nodeType":"YulFunctionCall","src":"5662:34:44"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5701:10:44","nodeType":"YulIdentifier","src":"5701:10:44"},{"name":"memPtr","nativeSrc":"5713:6:44","nodeType":"YulIdentifier","src":"5713:6:44"}],"functionName":{"name":"lt","nativeSrc":"5698:2:44","nodeType":"YulIdentifier","src":"5698:2:44"},"nativeSrc":"5698:22:44","nodeType":"YulFunctionCall","src":"5698:22:44"}],"functionName":{"name":"or","nativeSrc":"5659:2:44","nodeType":"YulIdentifier","src":"5659:2:44"},"nativeSrc":"5659:62:44","nodeType":"YulFunctionCall","src":"5659:62:44"},"nativeSrc":"5656:88:44","nodeType":"YulIf","src":"5656:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5760:2:44","nodeType":"YulLiteral","src":"5760:2:44","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5764:10:44","nodeType":"YulIdentifier","src":"5764:10:44"}],"functionName":{"name":"mstore","nativeSrc":"5753:6:44","nodeType":"YulIdentifier","src":"5753:6:44"},"nativeSrc":"5753:22:44","nodeType":"YulFunctionCall","src":"5753:22:44"},"nativeSrc":"5753:22:44","nodeType":"YulExpressionStatement","src":"5753:22:44"}]},"name":"finalize_allocation","nativeSrc":"5500:281:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5529:6:44","nodeType":"YulTypedName","src":"5529:6:44","type":""},{"name":"size","nativeSrc":"5537:4:44","nodeType":"YulTypedName","src":"5537:4:44","type":""}],"src":"5500:281:44"},{"body":{"nativeSrc":"5828:88:44","nodeType":"YulBlock","src":"5828:88:44","statements":[{"nativeSrc":"5838:30:44","nodeType":"YulAssignment","src":"5838:30:44","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"5848:18:44","nodeType":"YulIdentifier","src":"5848:18:44"},"nativeSrc":"5848:20:44","nodeType":"YulFunctionCall","src":"5848:20:44"},"variableNames":[{"name":"memPtr","nativeSrc":"5838:6:44","nodeType":"YulIdentifier","src":"5838:6:44"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5897:6:44","nodeType":"YulIdentifier","src":"5897:6:44"},{"name":"size","nativeSrc":"5905:4:44","nodeType":"YulIdentifier","src":"5905:4:44"}],"functionName":{"name":"finalize_allocation","nativeSrc":"5877:19:44","nodeType":"YulIdentifier","src":"5877:19:44"},"nativeSrc":"5877:33:44","nodeType":"YulFunctionCall","src":"5877:33:44"},"nativeSrc":"5877:33:44","nodeType":"YulExpressionStatement","src":"5877:33:44"}]},"name":"allocate_memory","nativeSrc":"5787:129:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"5812:4:44","nodeType":"YulTypedName","src":"5812:4:44","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"5821:6:44","nodeType":"YulTypedName","src":"5821:6:44","type":""}],"src":"5787:129:44"},{"body":{"nativeSrc":"6004:229:44","nodeType":"YulBlock","src":"6004:229:44","statements":[{"body":{"nativeSrc":"6109:22:44","nodeType":"YulBlock","src":"6109:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6111:16:44","nodeType":"YulIdentifier","src":"6111:16:44"},"nativeSrc":"6111:18:44","nodeType":"YulFunctionCall","src":"6111:18:44"},"nativeSrc":"6111:18:44","nodeType":"YulExpressionStatement","src":"6111:18:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6081:6:44","nodeType":"YulIdentifier","src":"6081:6:44"},{"kind":"number","nativeSrc":"6089:18:44","nodeType":"YulLiteral","src":"6089:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6078:2:44","nodeType":"YulIdentifier","src":"6078:2:44"},"nativeSrc":"6078:30:44","nodeType":"YulFunctionCall","src":"6078:30:44"},"nativeSrc":"6075:56:44","nodeType":"YulIf","src":"6075:56:44"},{"nativeSrc":"6141:25:44","nodeType":"YulAssignment","src":"6141:25:44","value":{"arguments":[{"name":"length","nativeSrc":"6153:6:44","nodeType":"YulIdentifier","src":"6153:6:44"},{"kind":"number","nativeSrc":"6161:4:44","nodeType":"YulLiteral","src":"6161:4:44","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6149:3:44","nodeType":"YulIdentifier","src":"6149:3:44"},"nativeSrc":"6149:17:44","nodeType":"YulFunctionCall","src":"6149:17:44"},"variableNames":[{"name":"size","nativeSrc":"6141:4:44","nodeType":"YulIdentifier","src":"6141:4:44"}]},{"nativeSrc":"6203:23:44","nodeType":"YulAssignment","src":"6203:23:44","value":{"arguments":[{"name":"size","nativeSrc":"6215:4:44","nodeType":"YulIdentifier","src":"6215:4:44"},{"kind":"number","nativeSrc":"6221:4:44","nodeType":"YulLiteral","src":"6221:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6211:3:44","nodeType":"YulIdentifier","src":"6211:3:44"},"nativeSrc":"6211:15:44","nodeType":"YulFunctionCall","src":"6211:15:44"},"variableNames":[{"name":"size","nativeSrc":"6203:4:44","nodeType":"YulIdentifier","src":"6203:4:44"}]}]},"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"5922:311:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5988:6:44","nodeType":"YulTypedName","src":"5988:6:44","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5999:4:44","nodeType":"YulTypedName","src":"5999:4:44","type":""}],"src":"5922:311:44"},{"body":{"nativeSrc":"6328:28:44","nodeType":"YulBlock","src":"6328:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6345:1:44","nodeType":"YulLiteral","src":"6345:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6348:1:44","nodeType":"YulLiteral","src":"6348:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6338:6:44","nodeType":"YulIdentifier","src":"6338:6:44"},"nativeSrc":"6338:12:44","nodeType":"YulFunctionCall","src":"6338:12:44"},"nativeSrc":"6338:12:44","nodeType":"YulExpressionStatement","src":"6338:12:44"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6239:117:44","nodeType":"YulFunctionDefinition","src":"6239:117:44"},{"body":{"nativeSrc":"6481:608:44","nodeType":"YulBlock","src":"6481:608:44","statements":[{"nativeSrc":"6491:90:44","nodeType":"YulAssignment","src":"6491:90:44","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6573:6:44","nodeType":"YulIdentifier","src":"6573:6:44"}],"functionName":{"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6516:56:44","nodeType":"YulIdentifier","src":"6516:56:44"},"nativeSrc":"6516:64:44","nodeType":"YulFunctionCall","src":"6516:64:44"}],"functionName":{"name":"allocate_memory","nativeSrc":"6500:15:44","nodeType":"YulIdentifier","src":"6500:15:44"},"nativeSrc":"6500:81:44","nodeType":"YulFunctionCall","src":"6500:81:44"},"variableNames":[{"name":"array","nativeSrc":"6491:5:44","nodeType":"YulIdentifier","src":"6491:5:44"}]},{"nativeSrc":"6590:16:44","nodeType":"YulVariableDeclaration","src":"6590:16:44","value":{"name":"array","nativeSrc":"6601:5:44","nodeType":"YulIdentifier","src":"6601:5:44"},"variables":[{"name":"dst","nativeSrc":"6594:3:44","nodeType":"YulTypedName","src":"6594:3:44","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6623:5:44","nodeType":"YulIdentifier","src":"6623:5:44"},{"name":"length","nativeSrc":"6630:6:44","nodeType":"YulIdentifier","src":"6630:6:44"}],"functionName":{"name":"mstore","nativeSrc":"6616:6:44","nodeType":"YulIdentifier","src":"6616:6:44"},"nativeSrc":"6616:21:44","nodeType":"YulFunctionCall","src":"6616:21:44"},"nativeSrc":"6616:21:44","nodeType":"YulExpressionStatement","src":"6616:21:44"},{"nativeSrc":"6646:23:44","nodeType":"YulAssignment","src":"6646:23:44","value":{"arguments":[{"name":"array","nativeSrc":"6657:5:44","nodeType":"YulIdentifier","src":"6657:5:44"},{"kind":"number","nativeSrc":"6664:4:44","nodeType":"YulLiteral","src":"6664:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6653:3:44","nodeType":"YulIdentifier","src":"6653:3:44"},"nativeSrc":"6653:16:44","nodeType":"YulFunctionCall","src":"6653:16:44"},"variableNames":[{"name":"dst","nativeSrc":"6646:3:44","nodeType":"YulIdentifier","src":"6646:3:44"}]},{"nativeSrc":"6679:44:44","nodeType":"YulVariableDeclaration","src":"6679:44:44","value":{"arguments":[{"name":"offset","nativeSrc":"6697:6:44","nodeType":"YulIdentifier","src":"6697:6:44"},{"arguments":[{"name":"length","nativeSrc":"6709:6:44","nodeType":"YulIdentifier","src":"6709:6:44"},{"kind":"number","nativeSrc":"6717:4:44","nodeType":"YulLiteral","src":"6717:4:44","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6705:3:44","nodeType":"YulIdentifier","src":"6705:3:44"},"nativeSrc":"6705:17:44","nodeType":"YulFunctionCall","src":"6705:17:44"}],"functionName":{"name":"add","nativeSrc":"6693:3:44","nodeType":"YulIdentifier","src":"6693:3:44"},"nativeSrc":"6693:30:44","nodeType":"YulFunctionCall","src":"6693:30:44"},"variables":[{"name":"srcEnd","nativeSrc":"6683:6:44","nodeType":"YulTypedName","src":"6683:6:44","type":""}]},{"body":{"nativeSrc":"6751:103:44","nodeType":"YulBlock","src":"6751:103:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6765:77:44","nodeType":"YulIdentifier","src":"6765:77:44"},"nativeSrc":"6765:79:44","nodeType":"YulFunctionCall","src":"6765:79:44"},"nativeSrc":"6765:79:44","nodeType":"YulExpressionStatement","src":"6765:79:44"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6738:6:44","nodeType":"YulIdentifier","src":"6738:6:44"},{"name":"end","nativeSrc":"6746:3:44","nodeType":"YulIdentifier","src":"6746:3:44"}],"functionName":{"name":"gt","nativeSrc":"6735:2:44","nodeType":"YulIdentifier","src":"6735:2:44"},"nativeSrc":"6735:15:44","nodeType":"YulFunctionCall","src":"6735:15:44"},"nativeSrc":"6732:122:44","nodeType":"YulIf","src":"6732:122:44"},{"body":{"nativeSrc":"6939:144:44","nodeType":"YulBlock","src":"6939:144:44","statements":[{"nativeSrc":"6954:21:44","nodeType":"YulVariableDeclaration","src":"6954:21:44","value":{"name":"src","nativeSrc":"6972:3:44","nodeType":"YulIdentifier","src":"6972:3:44"},"variables":[{"name":"elementPos","nativeSrc":"6958:10:44","nodeType":"YulTypedName","src":"6958:10:44","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6996:3:44","nodeType":"YulIdentifier","src":"6996:3:44"},{"arguments":[{"name":"elementPos","nativeSrc":"7022:10:44","nodeType":"YulIdentifier","src":"7022:10:44"},{"name":"end","nativeSrc":"7034:3:44","nodeType":"YulIdentifier","src":"7034:3:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7001:20:44","nodeType":"YulIdentifier","src":"7001:20:44"},"nativeSrc":"7001:37:44","nodeType":"YulFunctionCall","src":"7001:37:44"}],"functionName":{"name":"mstore","nativeSrc":"6989:6:44","nodeType":"YulIdentifier","src":"6989:6:44"},"nativeSrc":"6989:50:44","nodeType":"YulFunctionCall","src":"6989:50:44"},"nativeSrc":"6989:50:44","nodeType":"YulExpressionStatement","src":"6989:50:44"},{"nativeSrc":"7052:21:44","nodeType":"YulAssignment","src":"7052:21:44","value":{"arguments":[{"name":"dst","nativeSrc":"7063:3:44","nodeType":"YulIdentifier","src":"7063:3:44"},{"kind":"number","nativeSrc":"7068:4:44","nodeType":"YulLiteral","src":"7068:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7059:3:44","nodeType":"YulIdentifier","src":"7059:3:44"},"nativeSrc":"7059:14:44","nodeType":"YulFunctionCall","src":"7059:14:44"},"variableNames":[{"name":"dst","nativeSrc":"7052:3:44","nodeType":"YulIdentifier","src":"7052:3:44"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"6892:3:44","nodeType":"YulIdentifier","src":"6892:3:44"},{"name":"srcEnd","nativeSrc":"6897:6:44","nodeType":"YulIdentifier","src":"6897:6:44"}],"functionName":{"name":"lt","nativeSrc":"6889:2:44","nodeType":"YulIdentifier","src":"6889:2:44"},"nativeSrc":"6889:15:44","nodeType":"YulFunctionCall","src":"6889:15:44"},"nativeSrc":"6863:220:44","nodeType":"YulForLoop","post":{"nativeSrc":"6905:25:44","nodeType":"YulBlock","src":"6905:25:44","statements":[{"nativeSrc":"6907:21:44","nodeType":"YulAssignment","src":"6907:21:44","value":{"arguments":[{"name":"src","nativeSrc":"6918:3:44","nodeType":"YulIdentifier","src":"6918:3:44"},{"kind":"number","nativeSrc":"6923:4:44","nodeType":"YulLiteral","src":"6923:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6914:3:44","nodeType":"YulIdentifier","src":"6914:3:44"},"nativeSrc":"6914:14:44","nodeType":"YulFunctionCall","src":"6914:14:44"},"variableNames":[{"name":"src","nativeSrc":"6907:3:44","nodeType":"YulIdentifier","src":"6907:3:44"}]}]},"pre":{"nativeSrc":"6867:21:44","nodeType":"YulBlock","src":"6867:21:44","statements":[{"nativeSrc":"6869:17:44","nodeType":"YulVariableDeclaration","src":"6869:17:44","value":{"name":"offset","nativeSrc":"6880:6:44","nodeType":"YulIdentifier","src":"6880:6:44"},"variables":[{"name":"src","nativeSrc":"6873:3:44","nodeType":"YulTypedName","src":"6873:3:44","type":""}]}]},"src":"6863:220:44"}]},"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6379:710:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6451:6:44","nodeType":"YulTypedName","src":"6451:6:44","type":""},{"name":"length","nativeSrc":"6459:6:44","nodeType":"YulTypedName","src":"6459:6:44","type":""},{"name":"end","nativeSrc":"6467:3:44","nodeType":"YulTypedName","src":"6467:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6475:5:44","nodeType":"YulTypedName","src":"6475:5:44","type":""}],"src":"6379:710:44"},{"body":{"nativeSrc":"7189:293:44","nodeType":"YulBlock","src":"7189:293:44","statements":[{"body":{"nativeSrc":"7238:83:44","nodeType":"YulBlock","src":"7238:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7240:77:44","nodeType":"YulIdentifier","src":"7240:77:44"},"nativeSrc":"7240:79:44","nodeType":"YulFunctionCall","src":"7240:79:44"},"nativeSrc":"7240:79:44","nodeType":"YulExpressionStatement","src":"7240:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7217:6:44","nodeType":"YulIdentifier","src":"7217:6:44"},{"kind":"number","nativeSrc":"7225:4:44","nodeType":"YulLiteral","src":"7225:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7213:3:44","nodeType":"YulIdentifier","src":"7213:3:44"},"nativeSrc":"7213:17:44","nodeType":"YulFunctionCall","src":"7213:17:44"},{"name":"end","nativeSrc":"7232:3:44","nodeType":"YulIdentifier","src":"7232:3:44"}],"functionName":{"name":"slt","nativeSrc":"7209:3:44","nodeType":"YulIdentifier","src":"7209:3:44"},"nativeSrc":"7209:27:44","nodeType":"YulFunctionCall","src":"7209:27:44"}],"functionName":{"name":"iszero","nativeSrc":"7202:6:44","nodeType":"YulIdentifier","src":"7202:6:44"},"nativeSrc":"7202:35:44","nodeType":"YulFunctionCall","src":"7202:35:44"},"nativeSrc":"7199:122:44","nodeType":"YulIf","src":"7199:122:44"},{"nativeSrc":"7330:34:44","nodeType":"YulVariableDeclaration","src":"7330:34:44","value":{"arguments":[{"name":"offset","nativeSrc":"7357:6:44","nodeType":"YulIdentifier","src":"7357:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"7344:12:44","nodeType":"YulIdentifier","src":"7344:12:44"},"nativeSrc":"7344:20:44","nodeType":"YulFunctionCall","src":"7344:20:44"},"variables":[{"name":"length","nativeSrc":"7334:6:44","nodeType":"YulTypedName","src":"7334:6:44","type":""}]},{"nativeSrc":"7373:103:44","nodeType":"YulAssignment","src":"7373:103:44","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7449:6:44","nodeType":"YulIdentifier","src":"7449:6:44"},{"kind":"number","nativeSrc":"7457:4:44","nodeType":"YulLiteral","src":"7457:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7445:3:44","nodeType":"YulIdentifier","src":"7445:3:44"},"nativeSrc":"7445:17:44","nodeType":"YulFunctionCall","src":"7445:17:44"},{"name":"length","nativeSrc":"7464:6:44","nodeType":"YulIdentifier","src":"7464:6:44"},{"name":"end","nativeSrc":"7472:3:44","nodeType":"YulIdentifier","src":"7472:3:44"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7382:62:44","nodeType":"YulIdentifier","src":"7382:62:44"},"nativeSrc":"7382:94:44","nodeType":"YulFunctionCall","src":"7382:94:44"},"variableNames":[{"name":"array","nativeSrc":"7373:5:44","nodeType":"YulIdentifier","src":"7373:5:44"}]}]},"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7112:370:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7167:6:44","nodeType":"YulTypedName","src":"7167:6:44","type":""},{"name":"end","nativeSrc":"7175:3:44","nodeType":"YulTypedName","src":"7175:3:44","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7183:5:44","nodeType":"YulTypedName","src":"7183:5:44","type":""}],"src":"7112:370:44"},{"body":{"nativeSrc":"7613:704:44","nodeType":"YulBlock","src":"7613:704:44","statements":[{"body":{"nativeSrc":"7659:83:44","nodeType":"YulBlock","src":"7659:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7661:77:44","nodeType":"YulIdentifier","src":"7661:77:44"},"nativeSrc":"7661:79:44","nodeType":"YulFunctionCall","src":"7661:79:44"},"nativeSrc":"7661:79:44","nodeType":"YulExpressionStatement","src":"7661:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7634:7:44","nodeType":"YulIdentifier","src":"7634:7:44"},{"name":"headStart","nativeSrc":"7643:9:44","nodeType":"YulIdentifier","src":"7643:9:44"}],"functionName":{"name":"sub","nativeSrc":"7630:3:44","nodeType":"YulIdentifier","src":"7630:3:44"},"nativeSrc":"7630:23:44","nodeType":"YulFunctionCall","src":"7630:23:44"},{"kind":"number","nativeSrc":"7655:2:44","nodeType":"YulLiteral","src":"7655:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7626:3:44","nodeType":"YulIdentifier","src":"7626:3:44"},"nativeSrc":"7626:32:44","nodeType":"YulFunctionCall","src":"7626:32:44"},"nativeSrc":"7623:119:44","nodeType":"YulIf","src":"7623:119:44"},{"nativeSrc":"7752:302:44","nodeType":"YulBlock","src":"7752:302:44","statements":[{"nativeSrc":"7767:45:44","nodeType":"YulVariableDeclaration","src":"7767:45:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7798:9:44","nodeType":"YulIdentifier","src":"7798:9:44"},{"kind":"number","nativeSrc":"7809:1:44","nodeType":"YulLiteral","src":"7809:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7794:3:44","nodeType":"YulIdentifier","src":"7794:3:44"},"nativeSrc":"7794:17:44","nodeType":"YulFunctionCall","src":"7794:17:44"}],"functionName":{"name":"calldataload","nativeSrc":"7781:12:44","nodeType":"YulIdentifier","src":"7781:12:44"},"nativeSrc":"7781:31:44","nodeType":"YulFunctionCall","src":"7781:31:44"},"variables":[{"name":"offset","nativeSrc":"7771:6:44","nodeType":"YulTypedName","src":"7771:6:44","type":""}]},{"body":{"nativeSrc":"7859:83:44","nodeType":"YulBlock","src":"7859:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7861:77:44","nodeType":"YulIdentifier","src":"7861:77:44"},"nativeSrc":"7861:79:44","nodeType":"YulFunctionCall","src":"7861:79:44"},"nativeSrc":"7861:79:44","nodeType":"YulExpressionStatement","src":"7861:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7831:6:44","nodeType":"YulIdentifier","src":"7831:6:44"},{"kind":"number","nativeSrc":"7839:18:44","nodeType":"YulLiteral","src":"7839:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7828:2:44","nodeType":"YulIdentifier","src":"7828:2:44"},"nativeSrc":"7828:30:44","nodeType":"YulFunctionCall","src":"7828:30:44"},"nativeSrc":"7825:117:44","nodeType":"YulIf","src":"7825:117:44"},{"nativeSrc":"7956:88:44","nodeType":"YulAssignment","src":"7956:88:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8016:9:44","nodeType":"YulIdentifier","src":"8016:9:44"},{"name":"offset","nativeSrc":"8027:6:44","nodeType":"YulIdentifier","src":"8027:6:44"}],"functionName":{"name":"add","nativeSrc":"8012:3:44","nodeType":"YulIdentifier","src":"8012:3:44"},"nativeSrc":"8012:22:44","nodeType":"YulFunctionCall","src":"8012:22:44"},{"name":"dataEnd","nativeSrc":"8036:7:44","nodeType":"YulIdentifier","src":"8036:7:44"}],"functionName":{"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7966:45:44","nodeType":"YulIdentifier","src":"7966:45:44"},"nativeSrc":"7966:78:44","nodeType":"YulFunctionCall","src":"7966:78:44"},"variableNames":[{"name":"value0","nativeSrc":"7956:6:44","nodeType":"YulIdentifier","src":"7956:6:44"}]}]},{"nativeSrc":"8064:118:44","nodeType":"YulBlock","src":"8064:118:44","statements":[{"nativeSrc":"8079:16:44","nodeType":"YulVariableDeclaration","src":"8079:16:44","value":{"kind":"number","nativeSrc":"8093:2:44","nodeType":"YulLiteral","src":"8093:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8083:6:44","nodeType":"YulTypedName","src":"8083:6:44","type":""}]},{"nativeSrc":"8109:63:44","nodeType":"YulAssignment","src":"8109:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8144:9:44","nodeType":"YulIdentifier","src":"8144:9:44"},{"name":"offset","nativeSrc":"8155:6:44","nodeType":"YulIdentifier","src":"8155:6:44"}],"functionName":{"name":"add","nativeSrc":"8140:3:44","nodeType":"YulIdentifier","src":"8140:3:44"},"nativeSrc":"8140:22:44","nodeType":"YulFunctionCall","src":"8140:22:44"},{"name":"dataEnd","nativeSrc":"8164:7:44","nodeType":"YulIdentifier","src":"8164:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8119:20:44","nodeType":"YulIdentifier","src":"8119:20:44"},"nativeSrc":"8119:53:44","nodeType":"YulFunctionCall","src":"8119:53:44"},"variableNames":[{"name":"value1","nativeSrc":"8109:6:44","nodeType":"YulIdentifier","src":"8109:6:44"}]}]},{"nativeSrc":"8192:118:44","nodeType":"YulBlock","src":"8192:118:44","statements":[{"nativeSrc":"8207:16:44","nodeType":"YulVariableDeclaration","src":"8207:16:44","value":{"kind":"number","nativeSrc":"8221:2:44","nodeType":"YulLiteral","src":"8221:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8211:6:44","nodeType":"YulTypedName","src":"8211:6:44","type":""}]},{"nativeSrc":"8237:63:44","nodeType":"YulAssignment","src":"8237:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8272:9:44","nodeType":"YulIdentifier","src":"8272:9:44"},{"name":"offset","nativeSrc":"8283:6:44","nodeType":"YulIdentifier","src":"8283:6:44"}],"functionName":{"name":"add","nativeSrc":"8268:3:44","nodeType":"YulIdentifier","src":"8268:3:44"},"nativeSrc":"8268:22:44","nodeType":"YulFunctionCall","src":"8268:22:44"},{"name":"dataEnd","nativeSrc":"8292:7:44","nodeType":"YulIdentifier","src":"8292:7:44"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8247:20:44","nodeType":"YulIdentifier","src":"8247:20:44"},"nativeSrc":"8247:53:44","nodeType":"YulFunctionCall","src":"8247:53:44"},"variableNames":[{"name":"value2","nativeSrc":"8237:6:44","nodeType":"YulIdentifier","src":"8237:6:44"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256","nativeSrc":"7488:829:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7567:9:44","nodeType":"YulTypedName","src":"7567:9:44","type":""},{"name":"dataEnd","nativeSrc":"7578:7:44","nodeType":"YulTypedName","src":"7578:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7590:6:44","nodeType":"YulTypedName","src":"7590:6:44","type":""},{"name":"value1","nativeSrc":"7598:6:44","nodeType":"YulTypedName","src":"7598:6:44","type":""},{"name":"value2","nativeSrc":"7606:6:44","nodeType":"YulTypedName","src":"7606:6:44","type":""}],"src":"7488:829:44"},{"body":{"nativeSrc":"8397:40:44","nodeType":"YulBlock","src":"8397:40:44","statements":[{"nativeSrc":"8408:22:44","nodeType":"YulAssignment","src":"8408:22:44","value":{"arguments":[{"name":"value","nativeSrc":"8424:5:44","nodeType":"YulIdentifier","src":"8424:5:44"}],"functionName":{"name":"mload","nativeSrc":"8418:5:44","nodeType":"YulIdentifier","src":"8418:5:44"},"nativeSrc":"8418:12:44","nodeType":"YulFunctionCall","src":"8418:12:44"},"variableNames":[{"name":"length","nativeSrc":"8408:6:44","nodeType":"YulIdentifier","src":"8408:6:44"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"8323:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8380:5:44","nodeType":"YulTypedName","src":"8380:5:44","type":""}],"returnVariables":[{"name":"length","nativeSrc":"8390:6:44","nodeType":"YulTypedName","src":"8390:6:44","type":""}],"src":"8323:114:44"},{"body":{"nativeSrc":"8554:73:44","nodeType":"YulBlock","src":"8554:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8571:3:44","nodeType":"YulIdentifier","src":"8571:3:44"},{"name":"length","nativeSrc":"8576:6:44","nodeType":"YulIdentifier","src":"8576:6:44"}],"functionName":{"name":"mstore","nativeSrc":"8564:6:44","nodeType":"YulIdentifier","src":"8564:6:44"},"nativeSrc":"8564:19:44","nodeType":"YulFunctionCall","src":"8564:19:44"},"nativeSrc":"8564:19:44","nodeType":"YulExpressionStatement","src":"8564:19:44"},{"nativeSrc":"8592:29:44","nodeType":"YulAssignment","src":"8592:29:44","value":{"arguments":[{"name":"pos","nativeSrc":"8611:3:44","nodeType":"YulIdentifier","src":"8611:3:44"},{"kind":"number","nativeSrc":"8616:4:44","nodeType":"YulLiteral","src":"8616:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8607:3:44","nodeType":"YulIdentifier","src":"8607:3:44"},"nativeSrc":"8607:14:44","nodeType":"YulFunctionCall","src":"8607:14:44"},"variableNames":[{"name":"updated_pos","nativeSrc":"8592:11:44","nodeType":"YulIdentifier","src":"8592:11:44"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"8443:184:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8526:3:44","nodeType":"YulTypedName","src":"8526:3:44","type":""},{"name":"length","nativeSrc":"8531:6:44","nodeType":"YulTypedName","src":"8531:6:44","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"8542:11:44","nodeType":"YulTypedName","src":"8542:11:44","type":""}],"src":"8443:184:44"},{"body":{"nativeSrc":"8705:60:44","nodeType":"YulBlock","src":"8705:60:44","statements":[{"nativeSrc":"8715:11:44","nodeType":"YulAssignment","src":"8715:11:44","value":{"name":"ptr","nativeSrc":"8723:3:44","nodeType":"YulIdentifier","src":"8723:3:44"},"variableNames":[{"name":"data","nativeSrc":"8715:4:44","nodeType":"YulIdentifier","src":"8715:4:44"}]},{"nativeSrc":"8736:22:44","nodeType":"YulAssignment","src":"8736:22:44","value":{"arguments":[{"name":"ptr","nativeSrc":"8748:3:44","nodeType":"YulIdentifier","src":"8748:3:44"},{"kind":"number","nativeSrc":"8753:4:44","nodeType":"YulLiteral","src":"8753:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8744:3:44","nodeType":"YulIdentifier","src":"8744:3:44"},"nativeSrc":"8744:14:44","nodeType":"YulFunctionCall","src":"8744:14:44"},"variableNames":[{"name":"data","nativeSrc":"8736:4:44","nodeType":"YulIdentifier","src":"8736:4:44"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"8633:132:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"8692:3:44","nodeType":"YulTypedName","src":"8692:3:44","type":""}],"returnVariables":[{"name":"data","nativeSrc":"8700:4:44","nodeType":"YulTypedName","src":"8700:4:44","type":""}],"src":"8633:132:44"},{"body":{"nativeSrc":"8826:53:44","nodeType":"YulBlock","src":"8826:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8843:3:44","nodeType":"YulIdentifier","src":"8843:3:44"},{"arguments":[{"name":"value","nativeSrc":"8866:5:44","nodeType":"YulIdentifier","src":"8866:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8848:17:44","nodeType":"YulIdentifier","src":"8848:17:44"},"nativeSrc":"8848:24:44","nodeType":"YulFunctionCall","src":"8848:24:44"}],"functionName":{"name":"mstore","nativeSrc":"8836:6:44","nodeType":"YulIdentifier","src":"8836:6:44"},"nativeSrc":"8836:37:44","nodeType":"YulFunctionCall","src":"8836:37:44"},"nativeSrc":"8836:37:44","nodeType":"YulExpressionStatement","src":"8836:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"8771:108:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8814:5:44","nodeType":"YulTypedName","src":"8814:5:44","type":""},{"name":"pos","nativeSrc":"8821:3:44","nodeType":"YulTypedName","src":"8821:3:44","type":""}],"src":"8771:108:44"},{"body":{"nativeSrc":"8965:99:44","nodeType":"YulBlock","src":"8965:99:44","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"9009:6:44","nodeType":"YulIdentifier","src":"9009:6:44"},{"name":"pos","nativeSrc":"9017:3:44","nodeType":"YulIdentifier","src":"9017:3:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"8975:33:44","nodeType":"YulIdentifier","src":"8975:33:44"},"nativeSrc":"8975:46:44","nodeType":"YulFunctionCall","src":"8975:46:44"},"nativeSrc":"8975:46:44","nodeType":"YulExpressionStatement","src":"8975:46:44"},{"nativeSrc":"9030:28:44","nodeType":"YulAssignment","src":"9030:28:44","value":{"arguments":[{"name":"pos","nativeSrc":"9048:3:44","nodeType":"YulIdentifier","src":"9048:3:44"},{"kind":"number","nativeSrc":"9053:4:44","nodeType":"YulLiteral","src":"9053:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9044:3:44","nodeType":"YulIdentifier","src":"9044:3:44"},"nativeSrc":"9044:14:44","nodeType":"YulFunctionCall","src":"9044:14:44"},"variableNames":[{"name":"updatedPos","nativeSrc":"9030:10:44","nodeType":"YulIdentifier","src":"9030:10:44"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"8885:179:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"8938:6:44","nodeType":"YulTypedName","src":"8938:6:44","type":""},{"name":"pos","nativeSrc":"8946:3:44","nodeType":"YulTypedName","src":"8946:3:44","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"8954:10:44","nodeType":"YulTypedName","src":"8954:10:44","type":""}],"src":"8885:179:44"},{"body":{"nativeSrc":"9145:38:44","nodeType":"YulBlock","src":"9145:38:44","statements":[{"nativeSrc":"9155:22:44","nodeType":"YulAssignment","src":"9155:22:44","value":{"arguments":[{"name":"ptr","nativeSrc":"9167:3:44","nodeType":"YulIdentifier","src":"9167:3:44"},{"kind":"number","nativeSrc":"9172:4:44","nodeType":"YulLiteral","src":"9172:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9163:3:44","nodeType":"YulIdentifier","src":"9163:3:44"},"nativeSrc":"9163:14:44","nodeType":"YulFunctionCall","src":"9163:14:44"},"variableNames":[{"name":"next","nativeSrc":"9155:4:44","nodeType":"YulIdentifier","src":"9155:4:44"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9070:113:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"9132:3:44","nodeType":"YulTypedName","src":"9132:3:44","type":""}],"returnVariables":[{"name":"next","nativeSrc":"9140:4:44","nodeType":"YulTypedName","src":"9140:4:44","type":""}],"src":"9070:113:44"},{"body":{"nativeSrc":"9343:608:44","nodeType":"YulBlock","src":"9343:608:44","statements":[{"nativeSrc":"9353:68:44","nodeType":"YulVariableDeclaration","src":"9353:68:44","value":{"arguments":[{"name":"value","nativeSrc":"9415:5:44","nodeType":"YulIdentifier","src":"9415:5:44"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9367:47:44","nodeType":"YulIdentifier","src":"9367:47:44"},"nativeSrc":"9367:54:44","nodeType":"YulFunctionCall","src":"9367:54:44"},"variables":[{"name":"length","nativeSrc":"9357:6:44","nodeType":"YulTypedName","src":"9357:6:44","type":""}]},{"nativeSrc":"9430:93:44","nodeType":"YulAssignment","src":"9430:93:44","value":{"arguments":[{"name":"pos","nativeSrc":"9511:3:44","nodeType":"YulIdentifier","src":"9511:3:44"},{"name":"length","nativeSrc":"9516:6:44","nodeType":"YulIdentifier","src":"9516:6:44"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"9437:73:44","nodeType":"YulIdentifier","src":"9437:73:44"},"nativeSrc":"9437:86:44","nodeType":"YulFunctionCall","src":"9437:86:44"},"variableNames":[{"name":"pos","nativeSrc":"9430:3:44","nodeType":"YulIdentifier","src":"9430:3:44"}]},{"nativeSrc":"9532:71:44","nodeType":"YulVariableDeclaration","src":"9532:71:44","value":{"arguments":[{"name":"value","nativeSrc":"9597:5:44","nodeType":"YulIdentifier","src":"9597:5:44"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9547:49:44","nodeType":"YulIdentifier","src":"9547:49:44"},"nativeSrc":"9547:56:44","nodeType":"YulFunctionCall","src":"9547:56:44"},"variables":[{"name":"baseRef","nativeSrc":"9536:7:44","nodeType":"YulTypedName","src":"9536:7:44","type":""}]},{"nativeSrc":"9612:21:44","nodeType":"YulVariableDeclaration","src":"9612:21:44","value":{"name":"baseRef","nativeSrc":"9626:7:44","nodeType":"YulIdentifier","src":"9626:7:44"},"variables":[{"name":"srcPtr","nativeSrc":"9616:6:44","nodeType":"YulTypedName","src":"9616:6:44","type":""}]},{"body":{"nativeSrc":"9702:224:44","nodeType":"YulBlock","src":"9702:224:44","statements":[{"nativeSrc":"9716:34:44","nodeType":"YulVariableDeclaration","src":"9716:34:44","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9743:6:44","nodeType":"YulIdentifier","src":"9743:6:44"}],"functionName":{"name":"mload","nativeSrc":"9737:5:44","nodeType":"YulIdentifier","src":"9737:5:44"},"nativeSrc":"9737:13:44","nodeType":"YulFunctionCall","src":"9737:13:44"},"variables":[{"name":"elementValue0","nativeSrc":"9720:13:44","nodeType":"YulTypedName","src":"9720:13:44","type":""}]},{"nativeSrc":"9763:70:44","nodeType":"YulAssignment","src":"9763:70:44","value":{"arguments":[{"name":"elementValue0","nativeSrc":"9814:13:44","nodeType":"YulIdentifier","src":"9814:13:44"},{"name":"pos","nativeSrc":"9829:3:44","nodeType":"YulIdentifier","src":"9829:3:44"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"9770:43:44","nodeType":"YulIdentifier","src":"9770:43:44"},"nativeSrc":"9770:63:44","nodeType":"YulFunctionCall","src":"9770:63:44"},"variableNames":[{"name":"pos","nativeSrc":"9763:3:44","nodeType":"YulIdentifier","src":"9763:3:44"}]},{"nativeSrc":"9846:70:44","nodeType":"YulAssignment","src":"9846:70:44","value":{"arguments":[{"name":"srcPtr","nativeSrc":"9909:6:44","nodeType":"YulIdentifier","src":"9909:6:44"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9856:52:44","nodeType":"YulIdentifier","src":"9856:52:44"},"nativeSrc":"9856:60:44","nodeType":"YulFunctionCall","src":"9856:60:44"},"variableNames":[{"name":"srcPtr","nativeSrc":"9846:6:44","nodeType":"YulIdentifier","src":"9846:6:44"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"9664:1:44","nodeType":"YulIdentifier","src":"9664:1:44"},{"name":"length","nativeSrc":"9667:6:44","nodeType":"YulIdentifier","src":"9667:6:44"}],"functionName":{"name":"lt","nativeSrc":"9661:2:44","nodeType":"YulIdentifier","src":"9661:2:44"},"nativeSrc":"9661:13:44","nodeType":"YulFunctionCall","src":"9661:13:44"},"nativeSrc":"9642:284:44","nodeType":"YulForLoop","post":{"nativeSrc":"9675:18:44","nodeType":"YulBlock","src":"9675:18:44","statements":[{"nativeSrc":"9677:14:44","nodeType":"YulAssignment","src":"9677:14:44","value":{"arguments":[{"name":"i","nativeSrc":"9686:1:44","nodeType":"YulIdentifier","src":"9686:1:44"},{"kind":"number","nativeSrc":"9689:1:44","nodeType":"YulLiteral","src":"9689:1:44","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9682:3:44","nodeType":"YulIdentifier","src":"9682:3:44"},"nativeSrc":"9682:9:44","nodeType":"YulFunctionCall","src":"9682:9:44"},"variableNames":[{"name":"i","nativeSrc":"9677:1:44","nodeType":"YulIdentifier","src":"9677:1:44"}]}]},"pre":{"nativeSrc":"9646:14:44","nodeType":"YulBlock","src":"9646:14:44","statements":[{"nativeSrc":"9648:10:44","nodeType":"YulVariableDeclaration","src":"9648:10:44","value":{"kind":"number","nativeSrc":"9657:1:44","nodeType":"YulLiteral","src":"9657:1:44","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"9652:1:44","nodeType":"YulTypedName","src":"9652:1:44","type":""}]}]},"src":"9642:284:44"},{"nativeSrc":"9935:10:44","nodeType":"YulAssignment","src":"9935:10:44","value":{"name":"pos","nativeSrc":"9942:3:44","nodeType":"YulIdentifier","src":"9942:3:44"},"variableNames":[{"name":"end","nativeSrc":"9935:3:44","nodeType":"YulIdentifier","src":"9935:3:44"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"9219:732:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9322:5:44","nodeType":"YulTypedName","src":"9322:5:44","type":""},{"name":"pos","nativeSrc":"9329:3:44","nodeType":"YulTypedName","src":"9329:3:44","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9338:3:44","nodeType":"YulTypedName","src":"9338:3:44","type":""}],"src":"9219:732:44"},{"body":{"nativeSrc":"10105:225:44","nodeType":"YulBlock","src":"10105:225:44","statements":[{"nativeSrc":"10115:26:44","nodeType":"YulAssignment","src":"10115:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"10127:9:44","nodeType":"YulIdentifier","src":"10127:9:44"},{"kind":"number","nativeSrc":"10138:2:44","nodeType":"YulLiteral","src":"10138:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10123:3:44","nodeType":"YulIdentifier","src":"10123:3:44"},"nativeSrc":"10123:18:44","nodeType":"YulFunctionCall","src":"10123:18:44"},"variableNames":[{"name":"tail","nativeSrc":"10115:4:44","nodeType":"YulIdentifier","src":"10115:4:44"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10162:9:44","nodeType":"YulIdentifier","src":"10162:9:44"},{"kind":"number","nativeSrc":"10173:1:44","nodeType":"YulLiteral","src":"10173:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10158:3:44","nodeType":"YulIdentifier","src":"10158:3:44"},"nativeSrc":"10158:17:44","nodeType":"YulFunctionCall","src":"10158:17:44"},{"arguments":[{"name":"tail","nativeSrc":"10181:4:44","nodeType":"YulIdentifier","src":"10181:4:44"},{"name":"headStart","nativeSrc":"10187:9:44","nodeType":"YulIdentifier","src":"10187:9:44"}],"functionName":{"name":"sub","nativeSrc":"10177:3:44","nodeType":"YulIdentifier","src":"10177:3:44"},"nativeSrc":"10177:20:44","nodeType":"YulFunctionCall","src":"10177:20:44"}],"functionName":{"name":"mstore","nativeSrc":"10151:6:44","nodeType":"YulIdentifier","src":"10151:6:44"},"nativeSrc":"10151:47:44","nodeType":"YulFunctionCall","src":"10151:47:44"},"nativeSrc":"10151:47:44","nodeType":"YulExpressionStatement","src":"10151:47:44"},{"nativeSrc":"10207:116:44","nodeType":"YulAssignment","src":"10207:116:44","value":{"arguments":[{"name":"value0","nativeSrc":"10309:6:44","nodeType":"YulIdentifier","src":"10309:6:44"},{"name":"tail","nativeSrc":"10318:4:44","nodeType":"YulIdentifier","src":"10318:4:44"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"10215:93:44","nodeType":"YulIdentifier","src":"10215:93:44"},"nativeSrc":"10215:108:44","nodeType":"YulFunctionCall","src":"10215:108:44"},"variableNames":[{"name":"tail","nativeSrc":"10207:4:44","nodeType":"YulIdentifier","src":"10207:4:44"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"9957:373:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10077:9:44","nodeType":"YulTypedName","src":"10077:9:44","type":""},{"name":"value0","nativeSrc":"10089:6:44","nodeType":"YulTypedName","src":"10089:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10100:4:44","nodeType":"YulTypedName","src":"10100:4:44","type":""}],"src":"9957:373:44"},{"body":{"nativeSrc":"10402:263:44","nodeType":"YulBlock","src":"10402:263:44","statements":[{"body":{"nativeSrc":"10448:83:44","nodeType":"YulBlock","src":"10448:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10450:77:44","nodeType":"YulIdentifier","src":"10450:77:44"},"nativeSrc":"10450:79:44","nodeType":"YulFunctionCall","src":"10450:79:44"},"nativeSrc":"10450:79:44","nodeType":"YulExpressionStatement","src":"10450:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10423:7:44","nodeType":"YulIdentifier","src":"10423:7:44"},{"name":"headStart","nativeSrc":"10432:9:44","nodeType":"YulIdentifier","src":"10432:9:44"}],"functionName":{"name":"sub","nativeSrc":"10419:3:44","nodeType":"YulIdentifier","src":"10419:3:44"},"nativeSrc":"10419:23:44","nodeType":"YulFunctionCall","src":"10419:23:44"},{"kind":"number","nativeSrc":"10444:2:44","nodeType":"YulLiteral","src":"10444:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10415:3:44","nodeType":"YulIdentifier","src":"10415:3:44"},"nativeSrc":"10415:32:44","nodeType":"YulFunctionCall","src":"10415:32:44"},"nativeSrc":"10412:119:44","nodeType":"YulIf","src":"10412:119:44"},{"nativeSrc":"10541:117:44","nodeType":"YulBlock","src":"10541:117:44","statements":[{"nativeSrc":"10556:15:44","nodeType":"YulVariableDeclaration","src":"10556:15:44","value":{"kind":"number","nativeSrc":"10570:1:44","nodeType":"YulLiteral","src":"10570:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10560:6:44","nodeType":"YulTypedName","src":"10560:6:44","type":""}]},{"nativeSrc":"10585:63:44","nodeType":"YulAssignment","src":"10585:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10620:9:44","nodeType":"YulIdentifier","src":"10620:9:44"},{"name":"offset","nativeSrc":"10631:6:44","nodeType":"YulIdentifier","src":"10631:6:44"}],"functionName":{"name":"add","nativeSrc":"10616:3:44","nodeType":"YulIdentifier","src":"10616:3:44"},"nativeSrc":"10616:22:44","nodeType":"YulFunctionCall","src":"10616:22:44"},{"name":"dataEnd","nativeSrc":"10640:7:44","nodeType":"YulIdentifier","src":"10640:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10595:20:44","nodeType":"YulIdentifier","src":"10595:20:44"},"nativeSrc":"10595:53:44","nodeType":"YulFunctionCall","src":"10595:53:44"},"variableNames":[{"name":"value0","nativeSrc":"10585:6:44","nodeType":"YulIdentifier","src":"10585:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"10336:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10372:9:44","nodeType":"YulTypedName","src":"10372:9:44","type":""},{"name":"dataEnd","nativeSrc":"10383:7:44","nodeType":"YulTypedName","src":"10383:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10395:6:44","nodeType":"YulTypedName","src":"10395:6:44","type":""}],"src":"10336:329:44"},{"body":{"nativeSrc":"10736:53:44","nodeType":"YulBlock","src":"10736:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"10753:3:44","nodeType":"YulIdentifier","src":"10753:3:44"},{"arguments":[{"name":"value","nativeSrc":"10776:5:44","nodeType":"YulIdentifier","src":"10776:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"10758:17:44","nodeType":"YulIdentifier","src":"10758:17:44"},"nativeSrc":"10758:24:44","nodeType":"YulFunctionCall","src":"10758:24:44"}],"functionName":{"name":"mstore","nativeSrc":"10746:6:44","nodeType":"YulIdentifier","src":"10746:6:44"},"nativeSrc":"10746:37:44","nodeType":"YulFunctionCall","src":"10746:37:44"},"nativeSrc":"10746:37:44","nodeType":"YulExpressionStatement","src":"10746:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"10671:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10724:5:44","nodeType":"YulTypedName","src":"10724:5:44","type":""},{"name":"pos","nativeSrc":"10731:3:44","nodeType":"YulTypedName","src":"10731:3:44","type":""}],"src":"10671:118:44"},{"body":{"nativeSrc":"10893:124:44","nodeType":"YulBlock","src":"10893:124:44","statements":[{"nativeSrc":"10903:26:44","nodeType":"YulAssignment","src":"10903:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"10915:9:44","nodeType":"YulIdentifier","src":"10915:9:44"},{"kind":"number","nativeSrc":"10926:2:44","nodeType":"YulLiteral","src":"10926:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10911:3:44","nodeType":"YulIdentifier","src":"10911:3:44"},"nativeSrc":"10911:18:44","nodeType":"YulFunctionCall","src":"10911:18:44"},"variableNames":[{"name":"tail","nativeSrc":"10903:4:44","nodeType":"YulIdentifier","src":"10903:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10983:6:44","nodeType":"YulIdentifier","src":"10983:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"10996:9:44","nodeType":"YulIdentifier","src":"10996:9:44"},{"kind":"number","nativeSrc":"11007:1:44","nodeType":"YulLiteral","src":"11007:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10992:3:44","nodeType":"YulIdentifier","src":"10992:3:44"},"nativeSrc":"10992:17:44","nodeType":"YulFunctionCall","src":"10992:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"10939:43:44","nodeType":"YulIdentifier","src":"10939:43:44"},"nativeSrc":"10939:71:44","nodeType":"YulFunctionCall","src":"10939:71:44"},"nativeSrc":"10939:71:44","nodeType":"YulExpressionStatement","src":"10939:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"10795:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10865:9:44","nodeType":"YulTypedName","src":"10865:9:44","type":""},{"name":"value0","nativeSrc":"10877:6:44","nodeType":"YulTypedName","src":"10877:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10888:4:44","nodeType":"YulTypedName","src":"10888:4:44","type":""}],"src":"10795:222:44"},{"body":{"nativeSrc":"11086:80:44","nodeType":"YulBlock","src":"11086:80:44","statements":[{"nativeSrc":"11096:22:44","nodeType":"YulAssignment","src":"11096:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"11111:6:44","nodeType":"YulIdentifier","src":"11111:6:44"}],"functionName":{"name":"mload","nativeSrc":"11105:5:44","nodeType":"YulIdentifier","src":"11105:5:44"},"nativeSrc":"11105:13:44","nodeType":"YulFunctionCall","src":"11105:13:44"},"variableNames":[{"name":"value","nativeSrc":"11096:5:44","nodeType":"YulIdentifier","src":"11096:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11154:5:44","nodeType":"YulIdentifier","src":"11154:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"11127:26:44","nodeType":"YulIdentifier","src":"11127:26:44"},"nativeSrc":"11127:33:44","nodeType":"YulFunctionCall","src":"11127:33:44"},"nativeSrc":"11127:33:44","nodeType":"YulExpressionStatement","src":"11127:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"11023:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11064:6:44","nodeType":"YulTypedName","src":"11064:6:44","type":""},{"name":"end","nativeSrc":"11072:3:44","nodeType":"YulTypedName","src":"11072:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11080:5:44","nodeType":"YulTypedName","src":"11080:5:44","type":""}],"src":"11023:143:44"},{"body":{"nativeSrc":"11235:51:44","nodeType":"YulBlock","src":"11235:51:44","statements":[{"nativeSrc":"11245:35:44","nodeType":"YulAssignment","src":"11245:35:44","value":{"arguments":[{"name":"value","nativeSrc":"11274:5:44","nodeType":"YulIdentifier","src":"11274:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"11256:17:44","nodeType":"YulIdentifier","src":"11256:17:44"},"nativeSrc":"11256:24:44","nodeType":"YulFunctionCall","src":"11256:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"11245:7:44","nodeType":"YulIdentifier","src":"11245:7:44"}]}]},"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"11172:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11217:5:44","nodeType":"YulTypedName","src":"11217:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11227:7:44","nodeType":"YulTypedName","src":"11227:7:44","type":""}],"src":"11172:114:44"},{"body":{"nativeSrc":"11353:97:44","nodeType":"YulBlock","src":"11353:97:44","statements":[{"body":{"nativeSrc":"11428:16:44","nodeType":"YulBlock","src":"11428:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11437:1:44","nodeType":"YulLiteral","src":"11437:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"11440:1:44","nodeType":"YulLiteral","src":"11440:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11430:6:44","nodeType":"YulIdentifier","src":"11430:6:44"},"nativeSrc":"11430:12:44","nodeType":"YulFunctionCall","src":"11430:12:44"},"nativeSrc":"11430:12:44","nodeType":"YulExpressionStatement","src":"11430:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11376:5:44","nodeType":"YulIdentifier","src":"11376:5:44"},{"arguments":[{"name":"value","nativeSrc":"11419:5:44","nodeType":"YulIdentifier","src":"11419:5:44"}],"functionName":{"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"11383:35:44","nodeType":"YulIdentifier","src":"11383:35:44"},"nativeSrc":"11383:42:44","nodeType":"YulFunctionCall","src":"11383:42:44"}],"functionName":{"name":"eq","nativeSrc":"11373:2:44","nodeType":"YulIdentifier","src":"11373:2:44"},"nativeSrc":"11373:53:44","nodeType":"YulFunctionCall","src":"11373:53:44"}],"functionName":{"name":"iszero","nativeSrc":"11366:6:44","nodeType":"YulIdentifier","src":"11366:6:44"},"nativeSrc":"11366:61:44","nodeType":"YulFunctionCall","src":"11366:61:44"},"nativeSrc":"11363:81:44","nodeType":"YulIf","src":"11363:81:44"}]},"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"11292:158:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11346:5:44","nodeType":"YulTypedName","src":"11346:5:44","type":""}],"src":"11292:158:44"},{"body":{"nativeSrc":"11537:98:44","nodeType":"YulBlock","src":"11537:98:44","statements":[{"nativeSrc":"11547:22:44","nodeType":"YulAssignment","src":"11547:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"11562:6:44","nodeType":"YulIdentifier","src":"11562:6:44"}],"functionName":{"name":"mload","nativeSrc":"11556:5:44","nodeType":"YulIdentifier","src":"11556:5:44"},"nativeSrc":"11556:13:44","nodeType":"YulFunctionCall","src":"11556:13:44"},"variableNames":[{"name":"value","nativeSrc":"11547:5:44","nodeType":"YulIdentifier","src":"11547:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11623:5:44","nodeType":"YulIdentifier","src":"11623:5:44"}],"functionName":{"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"11578:44:44","nodeType":"YulIdentifier","src":"11578:44:44"},"nativeSrc":"11578:51:44","nodeType":"YulFunctionCall","src":"11578:51:44"},"nativeSrc":"11578:51:44","nodeType":"YulExpressionStatement","src":"11578:51:44"}]},"name":"abi_decode_t_contract$_IVerifier_$8474_fromMemory","nativeSrc":"11456:179:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11515:6:44","nodeType":"YulTypedName","src":"11515:6:44","type":""},{"name":"end","nativeSrc":"11523:3:44","nodeType":"YulTypedName","src":"11523:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11531:5:44","nodeType":"YulTypedName","src":"11531:5:44","type":""}],"src":"11456:179:44"},{"body":{"nativeSrc":"11704:80:44","nodeType":"YulBlock","src":"11704:80:44","statements":[{"nativeSrc":"11714:22:44","nodeType":"YulAssignment","src":"11714:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"11729:6:44","nodeType":"YulIdentifier","src":"11729:6:44"}],"functionName":{"name":"mload","nativeSrc":"11723:5:44","nodeType":"YulIdentifier","src":"11723:5:44"},"nativeSrc":"11723:13:44","nodeType":"YulFunctionCall","src":"11723:13:44"},"variableNames":[{"name":"value","nativeSrc":"11714:5:44","nodeType":"YulIdentifier","src":"11714:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11772:5:44","nodeType":"YulIdentifier","src":"11772:5:44"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"11745:26:44","nodeType":"YulIdentifier","src":"11745:26:44"},"nativeSrc":"11745:33:44","nodeType":"YulFunctionCall","src":"11745:33:44"},"nativeSrc":"11745:33:44","nodeType":"YulExpressionStatement","src":"11745:33:44"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"11641:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11682:6:44","nodeType":"YulTypedName","src":"11682:6:44","type":""},{"name":"end","nativeSrc":"11690:3:44","nodeType":"YulTypedName","src":"11690:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11698:5:44","nodeType":"YulTypedName","src":"11698:5:44","type":""}],"src":"11641:143:44"},{"body":{"nativeSrc":"11936:710:44","nodeType":"YulBlock","src":"11936:710:44","statements":[{"body":{"nativeSrc":"11983:83:44","nodeType":"YulBlock","src":"11983:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11985:77:44","nodeType":"YulIdentifier","src":"11985:77:44"},"nativeSrc":"11985:79:44","nodeType":"YulFunctionCall","src":"11985:79:44"},"nativeSrc":"11985:79:44","nodeType":"YulExpressionStatement","src":"11985:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11957:7:44","nodeType":"YulIdentifier","src":"11957:7:44"},{"name":"headStart","nativeSrc":"11966:9:44","nodeType":"YulIdentifier","src":"11966:9:44"}],"functionName":{"name":"sub","nativeSrc":"11953:3:44","nodeType":"YulIdentifier","src":"11953:3:44"},"nativeSrc":"11953:23:44","nodeType":"YulFunctionCall","src":"11953:23:44"},{"kind":"number","nativeSrc":"11978:3:44","nodeType":"YulLiteral","src":"11978:3:44","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11949:3:44","nodeType":"YulIdentifier","src":"11949:3:44"},"nativeSrc":"11949:33:44","nodeType":"YulFunctionCall","src":"11949:33:44"},"nativeSrc":"11946:120:44","nodeType":"YulIf","src":"11946:120:44"},{"nativeSrc":"12076:128:44","nodeType":"YulBlock","src":"12076:128:44","statements":[{"nativeSrc":"12091:15:44","nodeType":"YulVariableDeclaration","src":"12091:15:44","value":{"kind":"number","nativeSrc":"12105:1:44","nodeType":"YulLiteral","src":"12105:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12095:6:44","nodeType":"YulTypedName","src":"12095:6:44","type":""}]},{"nativeSrc":"12120:74:44","nodeType":"YulAssignment","src":"12120:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12166:9:44","nodeType":"YulIdentifier","src":"12166:9:44"},{"name":"offset","nativeSrc":"12177:6:44","nodeType":"YulIdentifier","src":"12177:6:44"}],"functionName":{"name":"add","nativeSrc":"12162:3:44","nodeType":"YulIdentifier","src":"12162:3:44"},"nativeSrc":"12162:22:44","nodeType":"YulFunctionCall","src":"12162:22:44"},{"name":"dataEnd","nativeSrc":"12186:7:44","nodeType":"YulIdentifier","src":"12186:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"12130:31:44","nodeType":"YulIdentifier","src":"12130:31:44"},"nativeSrc":"12130:64:44","nodeType":"YulFunctionCall","src":"12130:64:44"},"variableNames":[{"name":"value0","nativeSrc":"12120:6:44","nodeType":"YulIdentifier","src":"12120:6:44"}]}]},{"nativeSrc":"12214:147:44","nodeType":"YulBlock","src":"12214:147:44","statements":[{"nativeSrc":"12229:16:44","nodeType":"YulVariableDeclaration","src":"12229:16:44","value":{"kind":"number","nativeSrc":"12243:2:44","nodeType":"YulLiteral","src":"12243:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"12233:6:44","nodeType":"YulTypedName","src":"12233:6:44","type":""}]},{"nativeSrc":"12259:92:44","nodeType":"YulAssignment","src":"12259:92:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12323:9:44","nodeType":"YulIdentifier","src":"12323:9:44"},{"name":"offset","nativeSrc":"12334:6:44","nodeType":"YulIdentifier","src":"12334:6:44"}],"functionName":{"name":"add","nativeSrc":"12319:3:44","nodeType":"YulIdentifier","src":"12319:3:44"},"nativeSrc":"12319:22:44","nodeType":"YulFunctionCall","src":"12319:22:44"},{"name":"dataEnd","nativeSrc":"12343:7:44","nodeType":"YulIdentifier","src":"12343:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474_fromMemory","nativeSrc":"12269:49:44","nodeType":"YulIdentifier","src":"12269:49:44"},"nativeSrc":"12269:82:44","nodeType":"YulFunctionCall","src":"12269:82:44"},"variableNames":[{"name":"value1","nativeSrc":"12259:6:44","nodeType":"YulIdentifier","src":"12259:6:44"}]}]},{"nativeSrc":"12371:129:44","nodeType":"YulBlock","src":"12371:129:44","statements":[{"nativeSrc":"12386:16:44","nodeType":"YulVariableDeclaration","src":"12386:16:44","value":{"kind":"number","nativeSrc":"12400:2:44","nodeType":"YulLiteral","src":"12400:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"12390:6:44","nodeType":"YulTypedName","src":"12390:6:44","type":""}]},{"nativeSrc":"12416:74:44","nodeType":"YulAssignment","src":"12416:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12462:9:44","nodeType":"YulIdentifier","src":"12462:9:44"},{"name":"offset","nativeSrc":"12473:6:44","nodeType":"YulIdentifier","src":"12473:6:44"}],"functionName":{"name":"add","nativeSrc":"12458:3:44","nodeType":"YulIdentifier","src":"12458:3:44"},"nativeSrc":"12458:22:44","nodeType":"YulFunctionCall","src":"12458:22:44"},{"name":"dataEnd","nativeSrc":"12482:7:44","nodeType":"YulIdentifier","src":"12482:7:44"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"12426:31:44","nodeType":"YulIdentifier","src":"12426:31:44"},"nativeSrc":"12426:64:44","nodeType":"YulFunctionCall","src":"12426:64:44"},"variableNames":[{"name":"value2","nativeSrc":"12416:6:44","nodeType":"YulIdentifier","src":"12416:6:44"}]}]},{"nativeSrc":"12510:129:44","nodeType":"YulBlock","src":"12510:129:44","statements":[{"nativeSrc":"12525:16:44","nodeType":"YulVariableDeclaration","src":"12525:16:44","value":{"kind":"number","nativeSrc":"12539:2:44","nodeType":"YulLiteral","src":"12539:2:44","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"12529:6:44","nodeType":"YulTypedName","src":"12529:6:44","type":""}]},{"nativeSrc":"12555:74:44","nodeType":"YulAssignment","src":"12555:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12601:9:44","nodeType":"YulIdentifier","src":"12601:9:44"},{"name":"offset","nativeSrc":"12612:6:44","nodeType":"YulIdentifier","src":"12612:6:44"}],"functionName":{"name":"add","nativeSrc":"12597:3:44","nodeType":"YulIdentifier","src":"12597:3:44"},"nativeSrc":"12597:22:44","nodeType":"YulFunctionCall","src":"12597:22:44"},{"name":"dataEnd","nativeSrc":"12621:7:44","nodeType":"YulIdentifier","src":"12621:7:44"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"12565:31:44","nodeType":"YulIdentifier","src":"12565:31:44"},"nativeSrc":"12565:64:44","nodeType":"YulFunctionCall","src":"12565:64:44"},"variableNames":[{"name":"value3","nativeSrc":"12555:6:44","nodeType":"YulIdentifier","src":"12555:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_contract$_IVerifier_$8474t_uint256t_uint256_fromMemory","nativeSrc":"11790:856:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11882:9:44","nodeType":"YulTypedName","src":"11882:9:44","type":""},{"name":"dataEnd","nativeSrc":"11893:7:44","nodeType":"YulTypedName","src":"11893:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11905:6:44","nodeType":"YulTypedName","src":"11905:6:44","type":""},{"name":"value1","nativeSrc":"11913:6:44","nodeType":"YulTypedName","src":"11913:6:44","type":""},{"name":"value2","nativeSrc":"11921:6:44","nodeType":"YulTypedName","src":"11921:6:44","type":""},{"name":"value3","nativeSrc":"11929:6:44","nodeType":"YulTypedName","src":"11929:6:44","type":""}],"src":"11790:856:44"},{"body":{"nativeSrc":"12806:288:44","nodeType":"YulBlock","src":"12806:288:44","statements":[{"nativeSrc":"12816:26:44","nodeType":"YulAssignment","src":"12816:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"12828:9:44","nodeType":"YulIdentifier","src":"12828:9:44"},{"kind":"number","nativeSrc":"12839:2:44","nodeType":"YulLiteral","src":"12839:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12824:3:44","nodeType":"YulIdentifier","src":"12824:3:44"},"nativeSrc":"12824:18:44","nodeType":"YulFunctionCall","src":"12824:18:44"},"variableNames":[{"name":"tail","nativeSrc":"12816:4:44","nodeType":"YulIdentifier","src":"12816:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12896:6:44","nodeType":"YulIdentifier","src":"12896:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12909:9:44","nodeType":"YulIdentifier","src":"12909:9:44"},{"kind":"number","nativeSrc":"12920:1:44","nodeType":"YulLiteral","src":"12920:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12905:3:44","nodeType":"YulIdentifier","src":"12905:3:44"},"nativeSrc":"12905:17:44","nodeType":"YulFunctionCall","src":"12905:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"12852:43:44","nodeType":"YulIdentifier","src":"12852:43:44"},"nativeSrc":"12852:71:44","nodeType":"YulFunctionCall","src":"12852:71:44"},"nativeSrc":"12852:71:44","nodeType":"YulExpressionStatement","src":"12852:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12977:6:44","nodeType":"YulIdentifier","src":"12977:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12990:9:44","nodeType":"YulIdentifier","src":"12990:9:44"},{"kind":"number","nativeSrc":"13001:2:44","nodeType":"YulLiteral","src":"13001:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12986:3:44","nodeType":"YulIdentifier","src":"12986:3:44"},"nativeSrc":"12986:18:44","nodeType":"YulFunctionCall","src":"12986:18:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"12933:43:44","nodeType":"YulIdentifier","src":"12933:43:44"},"nativeSrc":"12933:72:44","nodeType":"YulFunctionCall","src":"12933:72:44"},"nativeSrc":"12933:72:44","nodeType":"YulExpressionStatement","src":"12933:72:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13059:6:44","nodeType":"YulIdentifier","src":"13059:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"13072:9:44","nodeType":"YulIdentifier","src":"13072:9:44"},{"kind":"number","nativeSrc":"13083:2:44","nodeType":"YulLiteral","src":"13083:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13068:3:44","nodeType":"YulIdentifier","src":"13068:3:44"},"nativeSrc":"13068:18:44","nodeType":"YulFunctionCall","src":"13068:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13015:43:44","nodeType":"YulIdentifier","src":"13015:43:44"},"nativeSrc":"13015:72:44","nodeType":"YulFunctionCall","src":"13015:72:44"},"nativeSrc":"13015:72:44","nodeType":"YulExpressionStatement","src":"13015:72:44"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed","nativeSrc":"12652:442:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12762:9:44","nodeType":"YulTypedName","src":"12762:9:44","type":""},{"name":"value2","nativeSrc":"12774:6:44","nodeType":"YulTypedName","src":"12774:6:44","type":""},{"name":"value1","nativeSrc":"12782:6:44","nodeType":"YulTypedName","src":"12782:6:44","type":""},{"name":"value0","nativeSrc":"12790:6:44","nodeType":"YulTypedName","src":"12790:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12801:4:44","nodeType":"YulTypedName","src":"12801:4:44","type":""}],"src":"12652:442:44"},{"body":{"nativeSrc":"13177:274:44","nodeType":"YulBlock","src":"13177:274:44","statements":[{"body":{"nativeSrc":"13223:83:44","nodeType":"YulBlock","src":"13223:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13225:77:44","nodeType":"YulIdentifier","src":"13225:77:44"},"nativeSrc":"13225:79:44","nodeType":"YulFunctionCall","src":"13225:79:44"},"nativeSrc":"13225:79:44","nodeType":"YulExpressionStatement","src":"13225:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13198:7:44","nodeType":"YulIdentifier","src":"13198:7:44"},{"name":"headStart","nativeSrc":"13207:9:44","nodeType":"YulIdentifier","src":"13207:9:44"}],"functionName":{"name":"sub","nativeSrc":"13194:3:44","nodeType":"YulIdentifier","src":"13194:3:44"},"nativeSrc":"13194:23:44","nodeType":"YulFunctionCall","src":"13194:23:44"},{"kind":"number","nativeSrc":"13219:2:44","nodeType":"YulLiteral","src":"13219:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13190:3:44","nodeType":"YulIdentifier","src":"13190:3:44"},"nativeSrc":"13190:32:44","nodeType":"YulFunctionCall","src":"13190:32:44"},"nativeSrc":"13187:119:44","nodeType":"YulIf","src":"13187:119:44"},{"nativeSrc":"13316:128:44","nodeType":"YulBlock","src":"13316:128:44","statements":[{"nativeSrc":"13331:15:44","nodeType":"YulVariableDeclaration","src":"13331:15:44","value":{"kind":"number","nativeSrc":"13345:1:44","nodeType":"YulLiteral","src":"13345:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13335:6:44","nodeType":"YulTypedName","src":"13335:6:44","type":""}]},{"nativeSrc":"13360:74:44","nodeType":"YulAssignment","src":"13360:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13406:9:44","nodeType":"YulIdentifier","src":"13406:9:44"},{"name":"offset","nativeSrc":"13417:6:44","nodeType":"YulIdentifier","src":"13417:6:44"}],"functionName":{"name":"add","nativeSrc":"13402:3:44","nodeType":"YulIdentifier","src":"13402:3:44"},"nativeSrc":"13402:22:44","nodeType":"YulFunctionCall","src":"13402:22:44"},{"name":"dataEnd","nativeSrc":"13426:7:44","nodeType":"YulIdentifier","src":"13426:7:44"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"13370:31:44","nodeType":"YulIdentifier","src":"13370:31:44"},"nativeSrc":"13370:64:44","nodeType":"YulFunctionCall","src":"13370:64:44"},"variableNames":[{"name":"value0","nativeSrc":"13360:6:44","nodeType":"YulIdentifier","src":"13360:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"13100:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13147:9:44","nodeType":"YulTypedName","src":"13147:9:44","type":""},{"name":"dataEnd","nativeSrc":"13158:7:44","nodeType":"YulTypedName","src":"13158:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13170:6:44","nodeType":"YulTypedName","src":"13170:6:44","type":""}],"src":"13100:351:44"},{"body":{"nativeSrc":"13485:152:44","nodeType":"YulBlock","src":"13485:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13502:1:44","nodeType":"YulLiteral","src":"13502:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"13505:77:44","nodeType":"YulLiteral","src":"13505:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"13495:6:44","nodeType":"YulIdentifier","src":"13495:6:44"},"nativeSrc":"13495:88:44","nodeType":"YulFunctionCall","src":"13495:88:44"},"nativeSrc":"13495:88:44","nodeType":"YulExpressionStatement","src":"13495:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13599:1:44","nodeType":"YulLiteral","src":"13599:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"13602:4:44","nodeType":"YulLiteral","src":"13602:4:44","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"13592:6:44","nodeType":"YulIdentifier","src":"13592:6:44"},"nativeSrc":"13592:15:44","nodeType":"YulFunctionCall","src":"13592:15:44"},"nativeSrc":"13592:15:44","nodeType":"YulExpressionStatement","src":"13592:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13623:1:44","nodeType":"YulLiteral","src":"13623:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"13626:4:44","nodeType":"YulLiteral","src":"13626:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13616:6:44","nodeType":"YulIdentifier","src":"13616:6:44"},"nativeSrc":"13616:15:44","nodeType":"YulFunctionCall","src":"13616:15:44"},"nativeSrc":"13616:15:44","nodeType":"YulExpressionStatement","src":"13616:15:44"}]},"name":"panic_error_0x32","nativeSrc":"13457:180:44","nodeType":"YulFunctionDefinition","src":"13457:180:44"},{"body":{"nativeSrc":"13696:32:44","nodeType":"YulBlock","src":"13696:32:44","statements":[{"nativeSrc":"13706:16:44","nodeType":"YulAssignment","src":"13706:16:44","value":{"name":"value","nativeSrc":"13717:5:44","nodeType":"YulIdentifier","src":"13717:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"13706:7:44","nodeType":"YulIdentifier","src":"13706:7:44"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"13643:85:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13678:5:44","nodeType":"YulTypedName","src":"13678:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13688:7:44","nodeType":"YulTypedName","src":"13688:7:44","type":""}],"src":"13643:85:44"},{"body":{"nativeSrc":"13778:57:44","nodeType":"YulBlock","src":"13778:57:44","statements":[{"nativeSrc":"13788:41:44","nodeType":"YulAssignment","src":"13788:41:44","value":{"arguments":[{"name":"value","nativeSrc":"13803:5:44","nodeType":"YulIdentifier","src":"13803:5:44"},{"kind":"number","nativeSrc":"13810:18:44","nodeType":"YulLiteral","src":"13810:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"13799:3:44","nodeType":"YulIdentifier","src":"13799:3:44"},"nativeSrc":"13799:30:44","nodeType":"YulFunctionCall","src":"13799:30:44"},"variableNames":[{"name":"cleaned","nativeSrc":"13788:7:44","nodeType":"YulIdentifier","src":"13788:7:44"}]}]},"name":"cleanup_t_uint64","nativeSrc":"13734:101:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13760:5:44","nodeType":"YulTypedName","src":"13760:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13770:7:44","nodeType":"YulTypedName","src":"13770:7:44","type":""}],"src":"13734:101:44"},{"body":{"nativeSrc":"13908:89:44","nodeType":"YulBlock","src":"13908:89:44","statements":[{"nativeSrc":"13918:73:44","nodeType":"YulAssignment","src":"13918:73:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13983:5:44","nodeType":"YulIdentifier","src":"13983:5:44"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"13957:25:44","nodeType":"YulIdentifier","src":"13957:25:44"},"nativeSrc":"13957:32:44","nodeType":"YulFunctionCall","src":"13957:32:44"}],"functionName":{"name":"identity","nativeSrc":"13948:8:44","nodeType":"YulIdentifier","src":"13948:8:44"},"nativeSrc":"13948:42:44","nodeType":"YulFunctionCall","src":"13948:42:44"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"13931:16:44","nodeType":"YulIdentifier","src":"13931:16:44"},"nativeSrc":"13931:60:44","nodeType":"YulFunctionCall","src":"13931:60:44"},"variableNames":[{"name":"converted","nativeSrc":"13918:9:44","nodeType":"YulIdentifier","src":"13918:9:44"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint64","nativeSrc":"13841:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13888:5:44","nodeType":"YulTypedName","src":"13888:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"13898:9:44","nodeType":"YulTypedName","src":"13898:9:44","type":""}],"src":"13841:156:44"},{"body":{"nativeSrc":"14075:73:44","nodeType":"YulBlock","src":"14075:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14092:3:44","nodeType":"YulIdentifier","src":"14092:3:44"},{"arguments":[{"name":"value","nativeSrc":"14135:5:44","nodeType":"YulIdentifier","src":"14135:5:44"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint64","nativeSrc":"14097:37:44","nodeType":"YulIdentifier","src":"14097:37:44"},"nativeSrc":"14097:44:44","nodeType":"YulFunctionCall","src":"14097:44:44"}],"functionName":{"name":"mstore","nativeSrc":"14085:6:44","nodeType":"YulIdentifier","src":"14085:6:44"},"nativeSrc":"14085:57:44","nodeType":"YulFunctionCall","src":"14085:57:44"},"nativeSrc":"14085:57:44","nodeType":"YulExpressionStatement","src":"14085:57:44"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint64_fromStack","nativeSrc":"14003:145:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14063:5:44","nodeType":"YulTypedName","src":"14063:5:44","type":""},{"name":"pos","nativeSrc":"14070:3:44","nodeType":"YulTypedName","src":"14070:3:44","type":""}],"src":"14003:145:44"},{"body":{"nativeSrc":"14259:131:44","nodeType":"YulBlock","src":"14259:131:44","statements":[{"nativeSrc":"14269:26:44","nodeType":"YulAssignment","src":"14269:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"14281:9:44","nodeType":"YulIdentifier","src":"14281:9:44"},{"kind":"number","nativeSrc":"14292:2:44","nodeType":"YulLiteral","src":"14292:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14277:3:44","nodeType":"YulIdentifier","src":"14277:3:44"},"nativeSrc":"14277:18:44","nodeType":"YulFunctionCall","src":"14277:18:44"},"variableNames":[{"name":"tail","nativeSrc":"14269:4:44","nodeType":"YulIdentifier","src":"14269:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14356:6:44","nodeType":"YulIdentifier","src":"14356:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"14369:9:44","nodeType":"YulIdentifier","src":"14369:9:44"},{"kind":"number","nativeSrc":"14380:1:44","nodeType":"YulLiteral","src":"14380:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14365:3:44","nodeType":"YulIdentifier","src":"14365:3:44"},"nativeSrc":"14365:17:44","nodeType":"YulFunctionCall","src":"14365:17:44"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint64_fromStack","nativeSrc":"14305:50:44","nodeType":"YulIdentifier","src":"14305:50:44"},"nativeSrc":"14305:78:44","nodeType":"YulFunctionCall","src":"14305:78:44"},"nativeSrc":"14305:78:44","nodeType":"YulExpressionStatement","src":"14305:78:44"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nativeSrc":"14154:236:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14231:9:44","nodeType":"YulTypedName","src":"14231:9:44","type":""},{"name":"value0","nativeSrc":"14243:6:44","nodeType":"YulTypedName","src":"14243:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14254:4:44","nodeType":"YulTypedName","src":"14254:4:44","type":""}],"src":"14154:236:44"}]},"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_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\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_bytes32t_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_bytes32(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_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_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IVerifier_$8474_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IVerifier_$8474_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__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_contract$_IVerifier_$8474_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function convert_t_contract$_ISciRegistry_$8112_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISciRegistry_$8112_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\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_array$_t_bytes32_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // bytes32[]\n    function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0x20))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_bytes32(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // bytes32[]\n    function abi_decode_t_array$_t_bytes32_$dyn_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_array$_t_bytes32_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { 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_array$_t_bytes32_$dyn_memory_ptr(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 array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n        abi_encode_t_uint256_to_t_uint256(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // uint256[] -> uint256[]\n    function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos)  -> end  {\n        let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n        let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\n\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0,  tail)\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 abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function cleanup_t_contract$_IVerifier_$8474(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IVerifier_$8474(value) {\n        if iszero(eq(value, cleanup_t_contract$_IVerifier_$8474(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IVerifier_$8474_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_contract$_IVerifier_$8474(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_addresst_contract$_IVerifier_$8474t_uint256t_uint256_fromMemory(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_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_contract$_IVerifier_$8474_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_address_t_uint256__to_t_bytes32_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_bytes32_to_t_bytes32_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    }\n\n    function abi_decode_tuple_t_uint256_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_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function cleanup_t_rational_1_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint64(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffff)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint64(value) -> converted {\n        converted := cleanup_t_uint64(identity(cleanup_t_rational_1_by_1(value)))\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint64(value))\n    }\n\n    function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_rational_1_by_1_to_t_uint64_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b14610143578063929d1ac114610161578063a91ee0dc14610191578063c4d66de8146101ad578063e30c3978146101c9578063f2fde38b146101e7576100a9565b80632019241b146100ae5780635b377fa2146100de578063715018a61461011157806379ba50971461011b5780637b10399914610125575b600080fd5b6100c860048036038101906100c39190610d2e565b610203565b6040516100d59190610d90565b60405180910390f35b6100f860048036038101906100f39190610dab565b61036c565b6040516101089493929190610e46565b60405180910390f35b61011961041b565b005b61012361042f565b005b61012d6104be565b60405161013a9190610eac565b60405180910390f35b61014b6104e2565b6040516101589190610ec7565b60405180910390f35b61017b6004803603810190610176919061103b565b61051a565b6040516101889190611168565b60405180910390f35b6101ab60048036038101906101a6919061118a565b6105d7565b005b6101c760048036038101906101c2919061118a565b6106a3565b005b6101d161083a565b6040516101de9190610ec7565b60405180910390f35b61020160048036038101906101fc919061118a565b610872565b005b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b815260040161025f91906111c6565b608060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190611249565b5050915050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036102e3576000915050610365565b8073ffffffffffffffffffffffffffffffffffffffff1663046852d08686866040518463ffffffff1660e01b8152600401610320939291906112b0565b602060405180830381865afa15801561033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036191906112e7565b9150505b9392505050565b60008060008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b377fa2866040518263ffffffff1660e01b81526004016103cb91906111c6565b608060405180830381865afa1580156103e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040c9190611249565b93509350935093509193509193565b61042361092e565b61042d60006109b5565b565b60006104396109f5565b90508073ffffffffffffffffffffffffffffffffffffffff1661045a61083a565b73ffffffffffffffffffffffffffffffffffffffff16146104b257806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016104a99190610ec7565b60405180910390fd5b6104bb816109b5565b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806104ed6109fd565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60606000845167ffffffffffffffff81111561053957610538610ef8565b5b6040519080825280602002602001820160405280156105675781602001602082028036833780820191505090505b50905060008551905060005b818110156105ca576105a087828151811061059157610590611314565b5b60200260200101518787610203565b8382815181106105b3576105b2611314565b5b602002602001018181525050806001019050610573565b5081925050509392505050565b6105df61092e565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f363c56730e510c61b9b1c8da206585b5f5fa0eb1f76e05c2fcf82ee006fff9f560405160405180910390a35050565b60006106ad610a25565b905060008160000160089054906101000a900460ff1615905060008260000160009054906101000a900467ffffffffffffffff1690506000808267ffffffffffffffff161480156106fb5750825b9050600060018367ffffffffffffffff16148015610730575060003073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561073e575080155b15610775576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018560000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156107c55760018560000160086101000a81548160ff0219169083151502179055505b6107cd610a4d565b6107d686610a57565b83156108325760008560000160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516108299190611392565b60405180910390a15b505050505050565b600080610845610a6b565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b61087a61092e565b6000610884610a6b565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108e86104e2565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6109366109f5565b73ffffffffffffffffffffffffffffffffffffffff166109546104e2565b73ffffffffffffffffffffffffffffffffffffffff16146109b3576109776109f5565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016109aa9190610ec7565b60405180910390fd5b565b60006109bf610a6b565b90508060000160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556109f182610a93565b5050565b600033905090565b60007f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b60007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b610a55610b6a565b565b610a5f610b6a565b610a6881610baa565b50565b60007f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b6000610a9d6109fd565b905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050828260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b610b72610c30565b610ba8576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610bb2610b6a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c245760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c1b9190610ec7565b60405180910390fd5b610c2d816109b5565b50565b6000610c3a610a25565b60000160089054906101000a900460ff16905090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610c7781610c64565b8114610c8257600080fd5b50565b600081359050610c9481610c6e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cc582610c9a565b9050919050565b610cd581610cba565b8114610ce057600080fd5b50565b600081359050610cf281610ccc565b92915050565b6000819050919050565b610d0b81610cf8565b8114610d1657600080fd5b50565b600081359050610d2881610d02565b92915050565b600080600060608486031215610d4757610d46610c5a565b5b6000610d5586828701610c85565b9350506020610d6686828701610ce3565b9250506040610d7786828701610d19565b9150509250925092565b610d8a81610cf8565b82525050565b6000602082019050610da56000830184610d81565b92915050565b600060208284031215610dc157610dc0610c5a565b5b6000610dcf84828501610c85565b91505092915050565b610de181610cba565b82525050565b6000819050919050565b6000610e0c610e07610e0284610c9a565b610de7565b610c9a565b9050919050565b6000610e1e82610df1565b9050919050565b6000610e3082610e13565b9050919050565b610e4081610e25565b82525050565b6000608082019050610e5b6000830187610dd8565b610e686020830186610e37565b610e756040830185610d81565b610e826060830184610d81565b95945050505050565b6000610e9682610e13565b9050919050565b610ea681610e8b565b82525050565b6000602082019050610ec16000830184610e9d565b92915050565b6000602082019050610edc6000830184610dd8565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f3082610ee7565b810181811067ffffffffffffffff82111715610f4f57610f4e610ef8565b5b80604052505050565b6000610f62610c50565b9050610f6e8282610f27565b919050565b600067ffffffffffffffff821115610f8e57610f8d610ef8565b5b602082029050602081019050919050565b600080fd5b6000610fb7610fb284610f73565b610f58565b90508083825260208201905060208402830185811115610fda57610fd9610f9f565b5b835b818110156110035780610fef8882610c85565b845260208401935050602081019050610fdc565b5050509392505050565b600082601f83011261102257611021610ee2565b5b8135611032848260208601610fa4565b91505092915050565b60008060006060848603121561105457611053610c5a565b5b600084013567ffffffffffffffff81111561107257611071610c5f565b5b61107e8682870161100d565b935050602061108f86828701610ce3565b92505060406110a086828701610d19565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110df81610cf8565b82525050565b60006110f183836110d6565b60208301905092915050565b6000602082019050919050565b6000611115826110aa565b61111f81856110b5565b935061112a836110c6565b8060005b8381101561115b57815161114288826110e5565b975061114d836110fd565b92505060018101905061112e565b5085935050505092915050565b60006020820190508181036000830152611182818461110a565b905092915050565b6000602082840312156111a05761119f610c5a565b5b60006111ae84828501610ce3565b91505092915050565b6111c081610c64565b82525050565b60006020820190506111db60008301846111b7565b92915050565b6000815190506111f081610ccc565b92915050565b600061120182610cba565b9050919050565b611211816111f6565b811461121c57600080fd5b50565b60008151905061122e81611208565b92915050565b60008151905061124381610d02565b92915050565b6000806000806080858703121561126357611262610c5a565b5b6000611271878288016111e1565b94505060206112828782880161121f565b935050604061129387828801611234565b92505060606112a487828801611234565b91505092959194509250565b60006060820190506112c560008301866111b7565b6112d26020830185610dd8565b6112df6040830184610d81565b949350505050565b6000602082840312156112fd576112fc610c5a565b5b600061130b84828501611234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600067ffffffffffffffff82169050919050565b600061137c61137761137284611343565b610de7565b61134d565b9050919050565b61138c81611361565b82525050565b60006020820190506113a76000830184611383565b9291505056fea26469706673582212201ab8f3e8d83ebc6a7a28cc343212fca89b4982bab4de1b8f9e91d000b53858c364736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x929D1AC1 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xA91EE0DC EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x1E7 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x2019241B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0xDE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x125 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xD2E JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xDAB JUMP JUMPDEST PUSH2 0x36C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x108 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH2 0x41B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH2 0x42F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12D PUSH2 0x4BE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13A SWAP2 SWAP1 PUSH2 0xEAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14B PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x188 SWAP2 SWAP1 PUSH2 0x1168 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x5D7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x118A JUMP JUMPDEST PUSH2 0x872 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x11C6 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST POP POP SWAP2 POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x2E3 JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0x365 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x46852D0 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x320 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x12B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361 SWAP2 SWAP1 PUSH2 0x12E7 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5B377FA2 DUP7 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP2 SWAP1 PUSH2 0x11C6 JUMP JUMPDEST PUSH1 0x80 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x40C SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP SWAP2 SWAP4 POP SWAP2 SWAP4 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x92E JUMP JUMPDEST PUSH2 0x42D PUSH1 0x0 PUSH2 0x9B5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x439 PUSH2 0x9F5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x45A PUSH2 0x83A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4B2 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A9 SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4BB DUP2 PUSH2 0x9B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4ED PUSH2 0x9FD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP5 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x539 JUMPI PUSH2 0x538 PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x567 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP6 MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH2 0x5A0 DUP8 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x591 JUMPI PUSH2 0x590 PUSH2 0x1314 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 DUP8 PUSH2 0x203 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x5B3 JUMPI PUSH2 0x5B2 PUSH2 0x1314 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x573 JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5DF PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 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 0x363C56730E510C61B9B1C8DA206585B5F5FA0EB1F76E05C2FCF82EE006FFF9F5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6AD PUSH2 0xA25 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x6FB JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x730 JUMPI POP PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE EQ JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x73E JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x775 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP4 ISZERO PUSH2 0x7C5 JUMPI PUSH1 0x1 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x7CD PUSH2 0xA4D JUMP JUMPDEST PUSH2 0x7D6 DUP7 PUSH2 0xA57 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x832 JUMPI PUSH1 0x0 DUP6 PUSH1 0x0 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x829 SWAP2 SWAP1 PUSH2 0x1392 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x845 PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x87A PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x884 PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8E8 PUSH2 0x4E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x936 PUSH2 0x9F5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x954 PUSH2 0x4E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9B3 JUMPI PUSH2 0x977 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x118CDAA700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9BF PUSH2 0xA6B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH2 0x9F1 DUP3 PUSH2 0xA93 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA55 PUSH2 0xB6A JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA5F PUSH2 0xB6A JUMP JUMPDEST PUSH2 0xA68 DUP2 PUSH2 0xBAA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9D PUSH2 0x9FD JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 DUP3 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xB72 PUSH2 0xC30 JUMP JUMPDEST PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD7E6BCF800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xBB2 PUSH2 0xB6A JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC24 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1E4FBDF700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1B SWAP2 SWAP1 PUSH2 0xEC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2D DUP2 PUSH2 0x9B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC3A PUSH2 0xA25 JUMP JUMPDEST PUSH1 0x0 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC77 DUP2 PUSH2 0xC64 JUMP JUMPDEST DUP2 EQ PUSH2 0xC82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC94 DUP2 PUSH2 0xC6E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCC5 DUP3 PUSH2 0xC9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD5 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP2 EQ PUSH2 0xCE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCF2 DUP2 PUSH2 0xCCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD0B DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP2 EQ PUSH2 0xD16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD28 DUP2 PUSH2 0xD02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD47 JUMPI PUSH2 0xD46 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD55 DUP7 DUP3 DUP8 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD66 DUP7 DUP3 DUP8 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD77 DUP7 DUP3 DUP8 ADD PUSH2 0xD19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xD8A DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDC1 JUMPI PUSH2 0xDC0 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDCF DUP5 DUP3 DUP6 ADD PUSH2 0xC85 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDE1 DUP2 PUSH2 0xCBA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE0C PUSH2 0xE07 PUSH2 0xE02 DUP5 PUSH2 0xC9A JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH2 0xC9A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE1E DUP3 PUSH2 0xDF1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE30 DUP3 PUSH2 0xE13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE40 DUP2 PUSH2 0xE25 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xE5B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0xE68 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0xE75 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xD81 JUMP JUMPDEST PUSH2 0xE82 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE96 DUP3 PUSH2 0xE13 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEA6 DUP2 PUSH2 0xE8B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEC1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEDC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xDD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0xF30 DUP3 PUSH2 0xEE7 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF4F JUMPI PUSH2 0xF4E PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF62 PUSH2 0xC50 JUMP JUMPDEST SWAP1 POP PUSH2 0xF6E DUP3 DUP3 PUSH2 0xF27 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF8D PUSH2 0xEF8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xFB7 PUSH2 0xFB2 DUP5 PUSH2 0xF73 JUMP JUMPDEST PUSH2 0xF58 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xFDA JUMPI PUSH2 0xFD9 PUSH2 0xF9F JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1003 JUMPI DUP1 PUSH2 0xFEF DUP9 DUP3 PUSH2 0xC85 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFDC JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1022 JUMPI PUSH2 0x1021 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1032 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xFA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1054 JUMPI PUSH2 0x1053 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1072 JUMPI PUSH2 0x1071 PUSH2 0xC5F JUMP JUMPDEST JUMPDEST PUSH2 0x107E DUP7 DUP3 DUP8 ADD PUSH2 0x100D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x108F DUP7 DUP3 DUP8 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x10A0 DUP7 DUP3 DUP8 ADD PUSH2 0xD19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10DF DUP2 PUSH2 0xCF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10F1 DUP4 DUP4 PUSH2 0x10D6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1115 DUP3 PUSH2 0x10AA JUMP JUMPDEST PUSH2 0x111F DUP2 DUP6 PUSH2 0x10B5 JUMP JUMPDEST SWAP4 POP PUSH2 0x112A DUP4 PUSH2 0x10C6 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x115B JUMPI DUP2 MLOAD PUSH2 0x1142 DUP9 DUP3 PUSH2 0x10E5 JUMP JUMPDEST SWAP8 POP PUSH2 0x114D DUP4 PUSH2 0x10FD JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x112E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1182 DUP2 DUP5 PUSH2 0x110A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11A0 JUMPI PUSH2 0x119F PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x11AE DUP5 DUP3 DUP6 ADD PUSH2 0xCE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11C0 DUP2 PUSH2 0xC64 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11DB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x11F0 DUP2 PUSH2 0xCCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1201 DUP3 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1211 DUP2 PUSH2 0x11F6 JUMP JUMPDEST DUP2 EQ PUSH2 0x121C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x122E DUP2 PUSH2 0x1208 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1243 DUP2 PUSH2 0xD02 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1263 JUMPI PUSH2 0x1262 PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1271 DUP8 DUP3 DUP9 ADD PUSH2 0x11E1 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1282 DUP8 DUP3 DUP9 ADD PUSH2 0x121F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1293 DUP8 DUP3 DUP9 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x12A4 DUP8 DUP3 DUP9 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x12C5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x11B7 JUMP JUMPDEST PUSH2 0x12D2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xDD8 JUMP JUMPDEST PUSH2 0x12DF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xD81 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12FD JUMPI PUSH2 0x12FC PUSH2 0xC5A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x130B DUP5 DUP3 DUP6 ADD PUSH2 0x1234 JUMP JUMPDEST SWAP2 POP 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 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x137C PUSH2 0x1377 PUSH2 0x1372 DUP5 PUSH2 0x1343 JUMP JUMPDEST PUSH2 0xDE7 JUMP JUMPDEST PUSH2 0x134D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138C DUP2 PUSH2 0x1361 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13A7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1383 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0xB8 RETURN 0xE8 0xD8 RETURNDATACOPY 0xBC PUSH11 0x7A28CC343212FCA89B4982 0xBA 0xB4 0xDE SHL DUP16 SWAP15 SWAP2 0xD0 STOP 0xB5 CODESIZE PC 0xC3 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"708:3634:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3547:395;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1424:324;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3155:101:3;;;:::i;:::-;;3257:229:2;;;:::i;:::-;;769:28:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2441:144:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2272:659:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4113:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1175:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2038:168:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2524:247;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3547:395:39;3693:7;3715:18;3741:8;;;;;;;;;;:27;;;3769:10;3741:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3712:68;;;;;3824:1;3795:31;;3803:8;3795:31;;;3791:70;;3849:1;3842:8;;;;;3791:70;3878:8;:19;;;3898:10;3910:15;3927:7;3878:57;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:64;;;3547:395;;;;;;:::o;1424:324::-;1546:13;1573:18;1605:24;1643:27;1702:8;;;;;;;;;;:27;;;1730:10;1702:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1695:46;;;;;;;;1424:324;;;;;:::o;3155:101:3:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;3257:229:2:-;3309:14;3326:12;:10;:12::i;:::-;3309:29;;3370:6;3352:24;;:14;:12;:14::i;:::-;:24;;;3348:96;;3426:6;3399:34;;;;;;;;;;;:::i;:::-;;;;;;;;3348:96;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;769:28:39:-;;;;;;;;;;;;:::o;2441:144:3:-;2487:7;2506:24;2533:20;:18;:20::i;:::-;2506:47;;2570:1;:8;;;;;;;;;;;;2563:15;;;2441:144;:::o;2272:659:39:-;2441:16;2469:36;2522:12;:19;2508:34;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2469:73;;2552:26;2581:12;:19;2552:48;;2615:9;2610:279;2630:18;2626:1;:22;2610:279;;;2691:128;2732:12;2745:1;2732:15;;;;;;;;:::i;:::-;;;;;;;;2765;2798:7;2691:23;:128::i;:::-;2666:19;2686:1;2666:22;;;;;;;;:::i;:::-;;;;;;;:153;;;;;2861:3;;;;;2610:279;;;;2905:19;2898:26;;;;2272:659;;;;;:::o;4113:227::-;2334:13:3;:11;:13::i;:::-;4182:26:39::1;4219:8:::0;::::1;;;;;;;;;;4182:46;;4262:11;4238:8;::::0;:36:::1;;;;;;;;;;;;;;;;;;4321:11;4289:44;;4301:18;4289:44;;;;;;;;;;;;4172:168;4113:227:::0;:::o;1175:125::-;4158:30:4;4191:26;:24;:26::i;:::-;4158:59;;4279:19;4302:1;:15;;;;;;;;;;;;4301:16;4279:38;;4327:18;4348:1;:14;;;;;;;;;;;;4327:35;;4706:17;4741:1;4726:11;:16;;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4805:1;4790:11;:16;;;:50;;;;;4839:1;4818:4;4810:25;;;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;;;;;;;;;;;;;4851:91;4968:1;4951;:14;;;:18;;;;;;;;;;;;;;;;;;4983:14;4979:67;;;5031:4;5013:1;:15;;;:22;;;;;;;;;;;;;;;;;;4979:67;1241:21:39::1;:19;:21::i;:::-;1272;1287:5;1272:14;:21::i;:::-;5070:14:4::0;5066:101;;;5118:5;5100:1;:15;;;:23;;;;;;;;;;;;;;;;;;5142:14;5154:1;5142:14;;;;;;:::i;:::-;;;;;;;;5066:101;4092:1081;;;;;1175:125:39;:::o;2038:168:2:-;2091:7;2110:29;2142:25;:23;:25::i;:::-;2110:57;;2184:1;:15;;;;;;;;;;;;2177:22;;;2038:168;:::o;2524:247::-;2334:13:3;:11;:13::i;:::-;2613:29:2::1;2645:25;:23;:25::i;:::-;2613:57;;2698:8;2680:1;:15;;;:26;;;;;;;;;;;;;;;;;;2755:8;2721:43;;2746:7;:5;:7::i;:::-;2721:43;;;;;;;;;;;;2603:168;2524:247:::0;:::o;2658:162:3:-;2728:12;:10;:12::i;:::-;2717:23;;:7;:5;:7::i;:::-;:23;;;2713:101;;2790:12;:10;:12::i;:::-;2763:40;;;;;;;;;;;:::i;:::-;;;;;;;;2713:101;2658:162::o;2955:222:2:-;3037:29;3069:25;:23;:25::i;:::-;3037:57;;3111:1;:15;;;3104:22;;;;;;;;;;;3136:34;3161:8;3136:24;:34::i;:::-;3027:150;2955:222;:::o;887:96:5:-;940:7;966:10;959:17;;887:96;:::o;1192:159:3:-;1244:24;1313:22;1303:32;;1192:159;:::o;8737:170:4:-;8795:30;8870:21;8860:31;;8737:170;:::o;1819:64:2:-;6931:20:4;:18;:20::i;:::-;1819:64:2:o;1847:127:3:-;6931:20:4;:18;:20::i;:::-;1929:38:3::1;1954:12;1929:24;:38::i;:::-;1847:127:::0;:::o;1545:174:2:-;1602:29;1676:27;1666:37;;1545:174;:::o;3774:248:3:-;3847:24;3874:20;:18;:20::i;:::-;3847:47;;3904:16;3923:1;:8;;;;;;;;;;;;3904:27;;3952:8;3941:1;:8;;;:19;;;;;;;;;;;;;;;;;;4006:8;3975:40;;3996:8;3975:40;;;;;;;;;;;;3837:185;;3774:248;:::o;7084:141:4:-;7151:17;:15;:17::i;:::-;7146:73;;7191:17;;;;;;;;;;;;;;7146:73;7084:141::o;1980:235:3:-;6931:20:4;:18;:20::i;:::-;2100:1:3::1;2076:26;;:12;:26;;::::0;2072:95:::1;;2153:1;2125:31;;;;;;;;;;;:::i;:::-;;;;;;;;2072:95;2176:32;2195:12;2176:18;:32::i;:::-;1980:235:::0;:::o;8487:120:4:-;8537:4;8560:26;:24;:26::i;:::-;:40;;;;;;;;;;;;8553:47;;8487:120;:::o;7:75:44:-;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:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:77::-;1234:7;1263:5;1252:16;;1197:77;;;:::o;1280:122::-;1353:24;1371:5;1353:24;:::i;:::-;1346:5;1343:35;1333:63;;1392:1;1389;1382:12;1333:63;1280:122;:::o;1408:139::-;1454:5;1492:6;1479:20;1470:29;;1508:33;1535:5;1508:33;:::i;:::-;1408:139;;;;:::o;1553:619::-;1630:6;1638;1646;1695:2;1683:9;1674:7;1670:23;1666:32;1663:119;;;1701:79;;:::i;:::-;1663:119;1821:1;1846:53;1891:7;1882:6;1871:9;1867:22;1846:53;:::i;:::-;1836:63;;1792:117;1948:2;1974:53;2019:7;2010:6;1999:9;1995:22;1974:53;:::i;:::-;1964:63;;1919:118;2076:2;2102:53;2147:7;2138:6;2127:9;2123:22;2102:53;:::i;:::-;2092:63;;2047:118;1553:619;;;;;:::o;2178:118::-;2265:24;2283:5;2265:24;:::i;:::-;2260:3;2253:37;2178:118;;:::o;2302:222::-;2395:4;2433:2;2422:9;2418:18;2410:26;;2446:71;2514:1;2503:9;2499:17;2490:6;2446:71;:::i;:::-;2302:222;;;;:::o;2530:329::-;2589:6;2638:2;2626:9;2617:7;2613:23;2609:32;2606:119;;;2644:79;;:::i;:::-;2606:119;2764:1;2789:53;2834:7;2825:6;2814:9;2810:22;2789:53;:::i;:::-;2779:63;;2735:117;2530:329;;;;:::o;2865:118::-;2952:24;2970:5;2952:24;:::i;:::-;2947:3;2940:37;2865:118;;:::o;2989:60::-;3017:3;3038:5;3031:12;;2989:60;;;:::o;3055:142::-;3105:9;3138:53;3156:34;3165:24;3183:5;3165:24;:::i;:::-;3156:34;:::i;:::-;3138:53;:::i;:::-;3125:66;;3055:142;;;:::o;3203:126::-;3253:9;3286:37;3317:5;3286:37;:::i;:::-;3273:50;;3203:126;;;:::o;3335:144::-;3403:9;3436:37;3467:5;3436:37;:::i;:::-;3423:50;;3335:144;;;:::o;3485:167::-;3590:55;3639:5;3590:55;:::i;:::-;3585:3;3578:68;3485:167;;:::o;3658:589::-;3853:4;3891:3;3880:9;3876:19;3868:27;;3905:71;3973:1;3962:9;3958:17;3949:6;3905:71;:::i;:::-;3986:90;4072:2;4061:9;4057:18;4048:6;3986:90;:::i;:::-;4086:72;4154:2;4143:9;4139:18;4130:6;4086:72;:::i;:::-;4168;4236:2;4225:9;4221:18;4212:6;4168:72;:::i;:::-;3658:589;;;;;;;:::o;4253:147::-;4324:9;4357:37;4388:5;4357:37;:::i;:::-;4344:50;;4253:147;;;:::o;4406:173::-;4514:58;4566:5;4514:58;:::i;:::-;4509:3;4502:71;4406:173;;:::o;4585:264::-;4699:4;4737:2;4726:9;4722:18;4714:26;;4750:92;4839:1;4828:9;4824:17;4815:6;4750:92;:::i;:::-;4585:264;;;;:::o;4855:222::-;4948:4;4986:2;4975:9;4971:18;4963:26;;4999:71;5067:1;5056:9;5052:17;5043:6;4999:71;:::i;:::-;4855:222;;;;:::o;5083:117::-;5192:1;5189;5182:12;5206:102;5247:6;5298:2;5294:7;5289:2;5282:5;5278:14;5274:28;5264:38;;5206:102;;;:::o;5314:180::-;5362:77;5359:1;5352:88;5459:4;5456:1;5449:15;5483:4;5480:1;5473:15;5500:281;5583:27;5605:4;5583:27;:::i;:::-;5575:6;5571:40;5713:6;5701:10;5698:22;5677:18;5665:10;5662:34;5659:62;5656:88;;;5724:18;;:::i;:::-;5656:88;5764:10;5760:2;5753:22;5543:238;5500:281;;:::o;5787:129::-;5821:6;5848:20;;:::i;:::-;5838:30;;5877:33;5905:4;5897:6;5877:33;:::i;:::-;5787:129;;;:::o;5922:311::-;5999:4;6089:18;6081:6;6078:30;6075:56;;;6111:18;;:::i;:::-;6075:56;6161:4;6153:6;6149:17;6141:25;;6221:4;6215;6211:15;6203:23;;5922:311;;;:::o;6239:117::-;6348:1;6345;6338:12;6379:710;6475:5;6500:81;6516:64;6573:6;6516:64;:::i;:::-;6500:81;:::i;:::-;6491:90;;6601:5;6630:6;6623:5;6616:21;6664:4;6657:5;6653:16;6646:23;;6717:4;6709:6;6705:17;6697:6;6693:30;6746:3;6738:6;6735:15;6732:122;;;6765:79;;:::i;:::-;6732:122;6880:6;6863:220;6897:6;6892:3;6889:15;6863:220;;;6972:3;7001:37;7034:3;7022:10;7001:37;:::i;:::-;6996:3;6989:50;7068:4;7063:3;7059:14;7052:21;;6939:144;6923:4;6918:3;6914:14;6907:21;;6863:220;;;6867:21;6481:608;;6379:710;;;;;:::o;7112:370::-;7183:5;7232:3;7225:4;7217:6;7213:17;7209:27;7199:122;;7240:79;;:::i;:::-;7199:122;7357:6;7344:20;7382:94;7472:3;7464:6;7457:4;7449:6;7445:17;7382:94;:::i;:::-;7373:103;;7189:293;7112:370;;;;:::o;7488:829::-;7590:6;7598;7606;7655:2;7643:9;7634:7;7630:23;7626:32;7623:119;;;7661:79;;:::i;:::-;7623:119;7809:1;7798:9;7794:17;7781:31;7839:18;7831:6;7828:30;7825:117;;;7861:79;;:::i;:::-;7825:117;7966:78;8036:7;8027:6;8016:9;8012:22;7966:78;:::i;:::-;7956:88;;7752:302;8093:2;8119:53;8164:7;8155:6;8144:9;8140:22;8119:53;:::i;:::-;8109:63;;8064:118;8221:2;8247:53;8292:7;8283:6;8272:9;8268:22;8247:53;:::i;:::-;8237:63;;8192:118;7488:829;;;;;:::o;8323:114::-;8390:6;8424:5;8418:12;8408:22;;8323:114;;;:::o;8443:184::-;8542:11;8576:6;8571:3;8564:19;8616:4;8611:3;8607:14;8592:29;;8443:184;;;;:::o;8633:132::-;8700:4;8723:3;8715:11;;8753:4;8748:3;8744:14;8736:22;;8633:132;;;:::o;8771:108::-;8848:24;8866:5;8848:24;:::i;:::-;8843:3;8836:37;8771:108;;:::o;8885:179::-;8954:10;8975:46;9017:3;9009:6;8975:46;:::i;:::-;9053:4;9048:3;9044:14;9030:28;;8885:179;;;;:::o;9070:113::-;9140:4;9172;9167:3;9163:14;9155:22;;9070:113;;;:::o;9219:732::-;9338:3;9367:54;9415:5;9367:54;:::i;:::-;9437:86;9516:6;9511:3;9437:86;:::i;:::-;9430:93;;9547:56;9597:5;9547:56;:::i;:::-;9626:7;9657:1;9642:284;9667:6;9664:1;9661:13;9642:284;;;9743:6;9737:13;9770:63;9829:3;9814:13;9770:63;:::i;:::-;9763:70;;9856:60;9909:6;9856:60;:::i;:::-;9846:70;;9702:224;9689:1;9686;9682:9;9677:14;;9642:284;;;9646:14;9942:3;9935:10;;9343:608;;;9219:732;;;;:::o;9957:373::-;10100:4;10138:2;10127:9;10123:18;10115:26;;10187:9;10181:4;10177:20;10173:1;10162:9;10158:17;10151:47;10215:108;10318:4;10309:6;10215:108;:::i;:::-;10207:116;;9957:373;;;;:::o;10336:329::-;10395:6;10444:2;10432:9;10423:7;10419:23;10415:32;10412:119;;;10450:79;;:::i;:::-;10412:119;10570:1;10595:53;10640:7;10631:6;10620:9;10616:22;10595:53;:::i;:::-;10585:63;;10541:117;10336:329;;;;:::o;10671:118::-;10758:24;10776:5;10758:24;:::i;:::-;10753:3;10746:37;10671:118;;:::o;10795:222::-;10888:4;10926:2;10915:9;10911:18;10903:26;;10939:71;11007:1;10996:9;10992:17;10983:6;10939:71;:::i;:::-;10795:222;;;;:::o;11023:143::-;11080:5;11111:6;11105:13;11096:22;;11127:33;11154:5;11127:33;:::i;:::-;11023:143;;;;:::o;11172:114::-;11227:7;11256:24;11274:5;11256:24;:::i;:::-;11245:35;;11172:114;;;:::o;11292:158::-;11383:42;11419:5;11383:42;:::i;:::-;11376:5;11373:53;11363:81;;11440:1;11437;11430:12;11363:81;11292:158;:::o;11456:179::-;11531:5;11562:6;11556:13;11547:22;;11578:51;11623:5;11578:51;:::i;:::-;11456:179;;;;:::o;11641:143::-;11698:5;11729:6;11723:13;11714:22;;11745:33;11772:5;11745:33;:::i;:::-;11641:143;;;;:::o;11790:856::-;11905:6;11913;11921;11929;11978:3;11966:9;11957:7;11953:23;11949:33;11946:120;;;11985:79;;:::i;:::-;11946:120;12105:1;12130:64;12186:7;12177:6;12166:9;12162:22;12130:64;:::i;:::-;12120:74;;12076:128;12243:2;12269:82;12343:7;12334:6;12323:9;12319:22;12269:82;:::i;:::-;12259:92;;12214:147;12400:2;12426:64;12482:7;12473:6;12462:9;12458:22;12426:64;:::i;:::-;12416:74;;12371:129;12539:2;12565:64;12621:7;12612:6;12601:9;12597:22;12565:64;:::i;:::-;12555:74;;12510:129;11790:856;;;;;;;:::o;12652:442::-;12801:4;12839:2;12828:9;12824:18;12816:26;;12852:71;12920:1;12909:9;12905:17;12896:6;12852:71;:::i;:::-;12933:72;13001:2;12990:9;12986:18;12977:6;12933:72;:::i;:::-;13015;13083:2;13072:9;13068:18;13059:6;13015:72;:::i;:::-;12652:442;;;;;;:::o;13100:351::-;13170:6;13219:2;13207:9;13198:7;13194:23;13190:32;13187:119;;;13225:79;;:::i;:::-;13187:119;13345:1;13370:64;13426:7;13417:6;13406:9;13402:22;13370:64;:::i;:::-;13360:74;;13316:128;13100:351;;;;:::o;13457:180::-;13505:77;13502:1;13495:88;13602:4;13599:1;13592:15;13626:4;13623:1;13616:15;13643:85;13688:7;13717:5;13706:16;;13643:85;;;:::o;13734:101::-;13770:7;13810:18;13803:5;13799:30;13788:41;;13734:101;;;:::o;13841:156::-;13898:9;13931:60;13948:42;13957:32;13983:5;13957:32;:::i;:::-;13948:42;:::i;:::-;13931:60;:::i;:::-;13918:73;;13841:156;;;:::o;14003:145::-;14097:44;14135:5;14097:44;:::i;:::-;14092:3;14085:57;14003:145;;:::o;14154:236::-;14254:4;14292:2;14281:9;14277:18;14269:26;;14305:78;14380:1;14369:9;14365:17;14356:6;14305:78;:::i;:::-;14154:236;;;;:::o"},"methodIdentifiers":{"acceptOwnership()":"79ba5097","domainHashToRecord(bytes32)":"5b377fa2","initialize(address)":"c4d66de8","isVerifiedForDomainHash(bytes32,address,uint256)":"2019241b","isVerifiedForMultipleDomainHashes(bytes32[],address,uint256)":"929d1ac1","owner()":"8da5cb5b","pendingOwner()":"e30c3978","registry()":"7b103999","renounceOwnership()":"715018a6","setRegistry(address)":"a91ee0dc","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"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\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"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\":\"oldRegistryAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRegistryAddress\",\"type\":\"address\"}],\"name\":\"RegistrySet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lastOwnerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastVerifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerifiedForDomainHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"domainHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerifiedForMultipleDomainHashes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRegistry\",\"type\":\"address\"}],\"name\":\"setRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract facilitates interaction with the SCI protocol, offering a simplified interface for apps and wallets. Apps and wallets can also directly interact with the Registry and verifiers directly if desired, bypassing this contract.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"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\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RegistrySet(address,address)\":{\"details\":\"Emitted when the Registry is changed.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"domainHashToRecord(bytes32)\":{\"details\":\"Returns info from the domain.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"}},\"initialize(address)\":{\"details\":\"Initializes the SCI contract with the owner and registry address. Can only be called once during contract deployment.\",\"params\":{\"owner\":\"The owner of this contract.\"}},\"isVerifiedForDomainHash(bytes32,address,uint256)\":{\"details\":\"Returns if the `contractAddress` deployed in the chain with id `chainId` is verified. to interact with the domain with namehash `domainHash`.\",\"params\":{\"chainId\":\"The id of the chain the contract is deployed in.\",\"contractAddress\":\"The address of the contract is being verified.\",\"domainHash\":\"The namehash of the domain the contract is interacting with\"},\"returns\":{\"_0\":\"a uint256 representing the time when the contract was verified. If the contract is not verified, it returns 0. Note: If there is no verifier set then it returns 0.\"}},\"isVerifiedForMultipleDomainHashes(bytes32[],address,uint256)\":{\"details\":\"Same as isVerifiedForDomainHash but for multiple domains.\",\"params\":{\"chainId\":\"The id of the chain the contract is deployed in.\",\"contractAddress\":\"The address of the contract is being verified.\",\"domainHashes\":\"An array of domain hashes.\"},\"returns\":{\"_0\":\"an array of uint256 representing the time when the contract was verified for each domain or 0 if it wasn't. Note: If there is no verifier set then it returns false for that `domainHash`.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending 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.\"},\"setRegistry(address)\":{\"details\":\"Sets a new registry.\",\"params\":{\"newRegistry\":\"The address of the new SCI Registry. May emit a {RegistrySet} event.\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"title\":\"SCI\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SCI.sol\":\"SCI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"contracts/SCI.sol\":{\"keccak256\":\"0x6f14aa3360b69dac8a0aba86136c0d3f8c973211e9af2e1ea9355ee451708ead\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://d4fe49a157fbb80cb958a9d45b004e04cdb420a7c3852a6e7ce76a8590700219\",\"dweb:/ipfs/QmPdUYBhjcWLd3WszgQXtdTb2Mb1jDKh4oMsMeHMhh7Xwy\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":7824,"contract":"contracts/SCI.sol:SCI","label":"registry","offset":0,"slot":"0","type":"t_contract(ISciRegistry)8112"}],"types":{"t_contract(ISciRegistry)8112":{"encoding":"inplace","label":"contract ISciRegistry","numberOfBytes":"20"}}}}},"contracts/SciRegistry/ISciRegistry.sol":{"ISciRegistry":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"registrar","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"DomainRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"contract IVerifier","name":"oldVerifier","type":"address"},{"indexed":true,"internalType":"contract IVerifier","name":"newVerifie","type":"address"}],"name":"VerifierSet","type":"event"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainHashToRecord","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"contract IVerifier","name":"verifier","type":"address"},{"internalType":"uint256","name":"lastOwnerSetTime","type":"uint256"},{"internalType":"uint256","name":"lastIVerifierSetTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainVerifier","outputs":[{"internalType":"contract IVerifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainVerifierSetTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"isDomainOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"registerDomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"registerDomainWithVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"setVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"domainHashToRecord(bytes32)":"5b377fa2","domainOwner(bytes32)":"d26cdd20","domainVerifier(bytes32)":"5a75199a","domainVerifierSetTime(bytes32)":"a2a6c0eb","isDomainOwner(bytes32,address)":"8023597e","registerDomain(address,bytes32)":"a8c00861","registerDomainWithVerifier(address,bytes32,address)":"dd738e6c","setVerifier(bytes32,address)":"a692b9ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registrar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"DomainRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"newVerifie\",\"type\":\"address\"}],\"name\":\"VerifierSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lastOwnerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastIVerifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifierSetTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDomainOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract manages domain registration and verifiers. It uses role-based access control to allow only authorized accounts to register domains and update verifiers. The contract stores domain ownership and verifier information and allows domain owners to modify verifiers.\",\"events\":{\"DomainRegistered(address,address,bytes32)\":{\"details\":\"Emitted when a new `domain` with the `domainHash` is registered by the `owner`.\"},\"OwnerSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the owner of a `domainHash` is set.\"},\"VerifierSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the `owner` of the `domainHash` adds a `verifier`. Note: This will also be emitted when the verifier is changed.\"}},\"kind\":\"dev\",\"methods\":{\"domainHashToRecord(bytes32)\":{\"details\":\"Returns the owner, the IVerifier, lastOwnerSetTime and lastIVerifierSetTime for a given domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"}},\"domainOwner(bytes32)\":{\"details\":\"Returns the owner of the domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The address of the owner or the ZERO_ADDRESS if the domain is not registered.\"}},\"domainVerifier(bytes32)\":{\"details\":\"Returns the IVerifier of the domainHash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The address of the IVerifier or the ZERO_ADDRESS if the domain or the IVerifier are not registered.\"}},\"domainVerifierSetTime(bytes32)\":{\"details\":\"Returns the timestamp of the block where the IVerifier was set.\",\"params\":{\"domainHash\":\"The namehash of the domain.\"},\"returns\":{\"_0\":\"The timestamp of the block where the IVerifier was set or 0 if it wasn't.\"}},\"isDomainOwner(bytes32,address)\":{\"details\":\"Returns true if the account is the owner of the domainHash.\"},\"registerDomain(address,bytes32)\":{\"details\":\"Register a domain.\",\"params\":{\"domainHash\":\"The namehash of the domain being registered. Requirements: - Only valid Registrars must be able to call this function. May emit a {DomainRegistered} event.\",\"owner\":\"The owner of the domain.\"}},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"Same as registerDomain but it also adds a IVerifier.\",\"params\":{\"domainHash\":\"The namehash of the domain being registered.\",\"owner\":\"The owner of the domain being registered.\",\"verifier\":\"The verifier that is being set for the domain. Requirements: - Only valid Registrars must be able to call this function. Note: Most of registrars should implement this function by sending the message sender as the owner to avoid other addresses changing or setting a malicous verifier. May emit a {DomainRegistered} and a {IVerifierAdded} events.\"}},\"setVerifier(bytes32,address)\":{\"details\":\"Sets a IVerifier to the domain hash.\",\"params\":{\"domainHash\":\"The namehash of the domain.\",\"verifier\":\"The address of the IVerifier contract. Requirements: - the caller must be the owner of the domain. May emit a {IVerifierAdded} event. Note: If you want to remove a IVerifier you can set it to the ZERO_ADDRESS.\"}}},\"title\":\"ISciRegistry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SciRegistry/ISciRegistry.sol\":\"ISciRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/SciRegistry/SciRegistry.sol":{"SciRegistry":{"abi":[{"inputs":[{"internalType":"uint48","name":"_initialDelay","type":"uint48"},{"internalType":"address","name":"_initialDefaultAdmin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"uint48","name":"schedule","type":"uint48"}],"name":"AccessControlEnforcedDefaultAdminDelay","type":"error"},{"inputs":[],"name":"AccessControlEnforcedDefaultAdminRules","type":"error"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"AccessControlInvalidDefaultAdmin","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"AccountIsNotDomainOwner","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"anonymous":false,"inputs":[],"name":"DefaultAdminDelayChangeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint48","name":"newDelay","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"effectSchedule","type":"uint48"}],"name":"DefaultAdminDelayChangeScheduled","type":"event"},{"anonymous":false,"inputs":[],"name":"DefaultAdminTransferCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"},{"indexed":false,"internalType":"uint48","name":"acceptSchedule","type":"uint48"}],"name":"DefaultAdminTransferScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"registrar","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"DomainRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"msgSender","type":"address"},{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"contract IVerifier","name":"oldVerifier","type":"address"},{"indexed":true,"internalType":"contract IVerifier","name":"newVerifie","type":"address"}],"name":"VerifierSet","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTRAR_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REGISTRAR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"beginDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelDefaultAdminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"}],"name":"changeDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultAdminDelayIncreaseWait","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"nameHash","type":"bytes32"}],"name":"domainHashToRecord","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"contract IVerifier","name":"verifier","type":"address"},{"internalType":"uint256","name":"ownerSetTime","type":"uint256"},{"internalType":"uint256","name":"verifierSetTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainVerifier","outputs":[{"internalType":"contract IVerifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"domainVerifierSetTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"isDomainOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdmin","outputs":[{"internalType":"address","name":"newAdmin","type":"address"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingDefaultAdminDelay","outputs":[{"internalType":"uint48","name":"newDelay","type":"uint48"},{"internalType":"uint48","name":"schedule","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"registerDomain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"registerDomainWithVerifier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rollbackDefaultAdminDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"contract IVerifier","name":"verifier","type":"address"}],"name":"setVerifier","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":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_1784":{"entryPoint":null,"id":1784,"parameterSlots":2,"returnSlots":0},"@_3525":{"entryPoint":null,"id":3525,"parameterSlots":0,"returnSlots":0},"@_7181":{"entryPoint":null,"id":7181,"parameterSlots":1,"returnSlots":0},"@_8189":{"entryPoint":null,"id":8189,"parameterSlots":2,"returnSlots":0},"@_grantRole_1449":{"entryPoint":732,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":393,"id":1970,"parameterSlots":2,"returnSlots":1},"@_msgSender_3399":{"entryPoint":1188,"id":3399,"parameterSlots":0,"returnSlots":1},"@_setRoleAdmin_1410":{"entryPoint":985,"id":1410,"parameterSlots":2,"returnSlots":0},"@_setRoleAdmin_2026":{"entryPoint":610,"id":2026,"parameterSlots":2,"returnSlots":0},"@defaultAdmin_2035":{"entryPoint":690,"id":2035,"parameterSlots":0,"returnSlots":1},"@getRoleAdmin_1321":{"entryPoint":1196,"id":1321,"parameterSlots":1,"returnSlots":1},"@hasRole_1273":{"entryPoint":1082,"id":1273,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1367,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48_fromMemory":{"entryPoint":1273,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint48t_address_fromMemory":{"entryPoint":1388,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1452,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1467,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":1326,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1294,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":1232,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1227,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1344,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":1250,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2081:44","nodeType":"YulBlock","src":"0:2081:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"378:53:44","nodeType":"YulBlock","src":"378:53:44","statements":[{"nativeSrc":"388:37:44","nodeType":"YulAssignment","src":"388:37:44","value":{"arguments":[{"name":"value","nativeSrc":"403:5:44","nodeType":"YulIdentifier","src":"403:5:44"},{"kind":"number","nativeSrc":"410:14:44","nodeType":"YulLiteral","src":"410:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"399:3:44","nodeType":"YulIdentifier","src":"399:3:44"},"nativeSrc":"399:26:44","nodeType":"YulFunctionCall","src":"399:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:44","nodeType":"YulIdentifier","src":"388:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"334:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:44","nodeType":"YulTypedName","src":"360:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:44","nodeType":"YulTypedName","src":"370:7:44","type":""}],"src":"334:97:44"},{"body":{"nativeSrc":"479:78:44","nodeType":"YulBlock","src":"479:78:44","statements":[{"body":{"nativeSrc":"535:16:44","nodeType":"YulBlock","src":"535:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"544:1:44","nodeType":"YulLiteral","src":"544:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"547:1:44","nodeType":"YulLiteral","src":"547:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"537:6:44","nodeType":"YulIdentifier","src":"537:6:44"},"nativeSrc":"537:12:44","nodeType":"YulFunctionCall","src":"537:12:44"},"nativeSrc":"537:12:44","nodeType":"YulExpressionStatement","src":"537:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"502:5:44","nodeType":"YulIdentifier","src":"502:5:44"},{"arguments":[{"name":"value","nativeSrc":"526:5:44","nodeType":"YulIdentifier","src":"526:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"509:16:44","nodeType":"YulIdentifier","src":"509:16:44"},"nativeSrc":"509:23:44","nodeType":"YulFunctionCall","src":"509:23:44"}],"functionName":{"name":"eq","nativeSrc":"499:2:44","nodeType":"YulIdentifier","src":"499:2:44"},"nativeSrc":"499:34:44","nodeType":"YulFunctionCall","src":"499:34:44"}],"functionName":{"name":"iszero","nativeSrc":"492:6:44","nodeType":"YulIdentifier","src":"492:6:44"},"nativeSrc":"492:42:44","nodeType":"YulFunctionCall","src":"492:42:44"},"nativeSrc":"489:62:44","nodeType":"YulIf","src":"489:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"437:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"472:5:44","nodeType":"YulTypedName","src":"472:5:44","type":""}],"src":"437:120:44"},{"body":{"nativeSrc":"625:79:44","nodeType":"YulBlock","src":"625:79:44","statements":[{"nativeSrc":"635:22:44","nodeType":"YulAssignment","src":"635:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"650:6:44","nodeType":"YulIdentifier","src":"650:6:44"}],"functionName":{"name":"mload","nativeSrc":"644:5:44","nodeType":"YulIdentifier","src":"644:5:44"},"nativeSrc":"644:13:44","nodeType":"YulFunctionCall","src":"644:13:44"},"variableNames":[{"name":"value","nativeSrc":"635:5:44","nodeType":"YulIdentifier","src":"635:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"692:5:44","nodeType":"YulIdentifier","src":"692:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"666:25:44","nodeType":"YulIdentifier","src":"666:25:44"},"nativeSrc":"666:32:44","nodeType":"YulFunctionCall","src":"666:32:44"},"nativeSrc":"666:32:44","nodeType":"YulExpressionStatement","src":"666:32:44"}]},"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"563:141:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"603:6:44","nodeType":"YulTypedName","src":"603:6:44","type":""},{"name":"end","nativeSrc":"611:3:44","nodeType":"YulTypedName","src":"611:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"619:5:44","nodeType":"YulTypedName","src":"619:5:44","type":""}],"src":"563:141:44"},{"body":{"nativeSrc":"755:81:44","nodeType":"YulBlock","src":"755:81:44","statements":[{"nativeSrc":"765:65:44","nodeType":"YulAssignment","src":"765:65:44","value":{"arguments":[{"name":"value","nativeSrc":"780:5:44","nodeType":"YulIdentifier","src":"780:5:44"},{"kind":"number","nativeSrc":"787:42:44","nodeType":"YulLiteral","src":"787:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"776:3:44","nodeType":"YulIdentifier","src":"776:3:44"},"nativeSrc":"776:54:44","nodeType":"YulFunctionCall","src":"776:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"765:7:44","nodeType":"YulIdentifier","src":"765:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"710:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"737:5:44","nodeType":"YulTypedName","src":"737:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"747:7:44","nodeType":"YulTypedName","src":"747:7:44","type":""}],"src":"710:126:44"},{"body":{"nativeSrc":"887:51:44","nodeType":"YulBlock","src":"887:51:44","statements":[{"nativeSrc":"897:35:44","nodeType":"YulAssignment","src":"897:35:44","value":{"arguments":[{"name":"value","nativeSrc":"926:5:44","nodeType":"YulIdentifier","src":"926:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"908:17:44","nodeType":"YulIdentifier","src":"908:17:44"},"nativeSrc":"908:24:44","nodeType":"YulFunctionCall","src":"908:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"897:7:44","nodeType":"YulIdentifier","src":"897:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"842:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"869:5:44","nodeType":"YulTypedName","src":"869:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"879:7:44","nodeType":"YulTypedName","src":"879:7:44","type":""}],"src":"842:96:44"},{"body":{"nativeSrc":"987:79:44","nodeType":"YulBlock","src":"987:79:44","statements":[{"body":{"nativeSrc":"1044:16:44","nodeType":"YulBlock","src":"1044:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1053:1:44","nodeType":"YulLiteral","src":"1053:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1056:1:44","nodeType":"YulLiteral","src":"1056:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1046:6:44","nodeType":"YulIdentifier","src":"1046:6:44"},"nativeSrc":"1046:12:44","nodeType":"YulFunctionCall","src":"1046:12:44"},"nativeSrc":"1046:12:44","nodeType":"YulExpressionStatement","src":"1046:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1010:5:44","nodeType":"YulIdentifier","src":"1010:5:44"},{"arguments":[{"name":"value","nativeSrc":"1035:5:44","nodeType":"YulIdentifier","src":"1035:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1017:17:44","nodeType":"YulIdentifier","src":"1017:17:44"},"nativeSrc":"1017:24:44","nodeType":"YulFunctionCall","src":"1017:24:44"}],"functionName":{"name":"eq","nativeSrc":"1007:2:44","nodeType":"YulIdentifier","src":"1007:2:44"},"nativeSrc":"1007:35:44","nodeType":"YulFunctionCall","src":"1007:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1000:6:44","nodeType":"YulIdentifier","src":"1000:6:44"},"nativeSrc":"1000:43:44","nodeType":"YulFunctionCall","src":"1000:43:44"},"nativeSrc":"997:63:44","nodeType":"YulIf","src":"997:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"944:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"980:5:44","nodeType":"YulTypedName","src":"980:5:44","type":""}],"src":"944:122:44"},{"body":{"nativeSrc":"1135:80:44","nodeType":"YulBlock","src":"1135:80:44","statements":[{"nativeSrc":"1145:22:44","nodeType":"YulAssignment","src":"1145:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"1160:6:44","nodeType":"YulIdentifier","src":"1160:6:44"}],"functionName":{"name":"mload","nativeSrc":"1154:5:44","nodeType":"YulIdentifier","src":"1154:5:44"},"nativeSrc":"1154:13:44","nodeType":"YulFunctionCall","src":"1154:13:44"},"variableNames":[{"name":"value","nativeSrc":"1145:5:44","nodeType":"YulIdentifier","src":"1145:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1203:5:44","nodeType":"YulIdentifier","src":"1203:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1176:26:44","nodeType":"YulIdentifier","src":"1176:26:44"},"nativeSrc":"1176:33:44","nodeType":"YulFunctionCall","src":"1176:33:44"},"nativeSrc":"1176:33:44","nodeType":"YulExpressionStatement","src":"1176:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1072:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1113:6:44","nodeType":"YulTypedName","src":"1113:6:44","type":""},{"name":"end","nativeSrc":"1121:3:44","nodeType":"YulTypedName","src":"1121:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1129:5:44","nodeType":"YulTypedName","src":"1129:5:44","type":""}],"src":"1072:143:44"},{"body":{"nativeSrc":"1314:412:44","nodeType":"YulBlock","src":"1314:412:44","statements":[{"body":{"nativeSrc":"1360:83:44","nodeType":"YulBlock","src":"1360:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1362:77:44","nodeType":"YulIdentifier","src":"1362:77:44"},"nativeSrc":"1362:79:44","nodeType":"YulFunctionCall","src":"1362:79:44"},"nativeSrc":"1362:79:44","nodeType":"YulExpressionStatement","src":"1362:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1335:7:44","nodeType":"YulIdentifier","src":"1335:7:44"},{"name":"headStart","nativeSrc":"1344:9:44","nodeType":"YulIdentifier","src":"1344:9:44"}],"functionName":{"name":"sub","nativeSrc":"1331:3:44","nodeType":"YulIdentifier","src":"1331:3:44"},"nativeSrc":"1331:23:44","nodeType":"YulFunctionCall","src":"1331:23:44"},{"kind":"number","nativeSrc":"1356:2:44","nodeType":"YulLiteral","src":"1356:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1327:3:44","nodeType":"YulIdentifier","src":"1327:3:44"},"nativeSrc":"1327:32:44","nodeType":"YulFunctionCall","src":"1327:32:44"},"nativeSrc":"1324:119:44","nodeType":"YulIf","src":"1324:119:44"},{"nativeSrc":"1453:127:44","nodeType":"YulBlock","src":"1453:127:44","statements":[{"nativeSrc":"1468:15:44","nodeType":"YulVariableDeclaration","src":"1468:15:44","value":{"kind":"number","nativeSrc":"1482:1:44","nodeType":"YulLiteral","src":"1482:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1472:6:44","nodeType":"YulTypedName","src":"1472:6:44","type":""}]},{"nativeSrc":"1497:73:44","nodeType":"YulAssignment","src":"1497:73:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1542:9:44","nodeType":"YulIdentifier","src":"1542:9:44"},{"name":"offset","nativeSrc":"1553:6:44","nodeType":"YulIdentifier","src":"1553:6:44"}],"functionName":{"name":"add","nativeSrc":"1538:3:44","nodeType":"YulIdentifier","src":"1538:3:44"},"nativeSrc":"1538:22:44","nodeType":"YulFunctionCall","src":"1538:22:44"},{"name":"dataEnd","nativeSrc":"1562:7:44","nodeType":"YulIdentifier","src":"1562:7:44"}],"functionName":{"name":"abi_decode_t_uint48_fromMemory","nativeSrc":"1507:30:44","nodeType":"YulIdentifier","src":"1507:30:44"},"nativeSrc":"1507:63:44","nodeType":"YulFunctionCall","src":"1507:63:44"},"variableNames":[{"name":"value0","nativeSrc":"1497:6:44","nodeType":"YulIdentifier","src":"1497:6:44"}]}]},{"nativeSrc":"1590:129:44","nodeType":"YulBlock","src":"1590:129:44","statements":[{"nativeSrc":"1605:16:44","nodeType":"YulVariableDeclaration","src":"1605:16:44","value":{"kind":"number","nativeSrc":"1619:2:44","nodeType":"YulLiteral","src":"1619:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1609:6:44","nodeType":"YulTypedName","src":"1609:6:44","type":""}]},{"nativeSrc":"1635:74:44","nodeType":"YulAssignment","src":"1635:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1681:9:44","nodeType":"YulIdentifier","src":"1681:9:44"},{"name":"offset","nativeSrc":"1692:6:44","nodeType":"YulIdentifier","src":"1692:6:44"}],"functionName":{"name":"add","nativeSrc":"1677:3:44","nodeType":"YulIdentifier","src":"1677:3:44"},"nativeSrc":"1677:22:44","nodeType":"YulFunctionCall","src":"1677:22:44"},{"name":"dataEnd","nativeSrc":"1701:7:44","nodeType":"YulIdentifier","src":"1701:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1645:31:44","nodeType":"YulIdentifier","src":"1645:31:44"},"nativeSrc":"1645:64:44","nodeType":"YulFunctionCall","src":"1645:64:44"},"variableNames":[{"name":"value1","nativeSrc":"1635:6:44","nodeType":"YulIdentifier","src":"1635:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint48t_address_fromMemory","nativeSrc":"1221:505:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1276:9:44","nodeType":"YulTypedName","src":"1276:9:44","type":""},{"name":"dataEnd","nativeSrc":"1287:7:44","nodeType":"YulTypedName","src":"1287:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1299:6:44","nodeType":"YulTypedName","src":"1299:6:44","type":""},{"name":"value1","nativeSrc":"1307:6:44","nodeType":"YulTypedName","src":"1307:6:44","type":""}],"src":"1221:505:44"},{"body":{"nativeSrc":"1797:53:44","nodeType":"YulBlock","src":"1797:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1814:3:44","nodeType":"YulIdentifier","src":"1814:3:44"},{"arguments":[{"name":"value","nativeSrc":"1837:5:44","nodeType":"YulIdentifier","src":"1837:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1819:17:44","nodeType":"YulIdentifier","src":"1819:17:44"},"nativeSrc":"1819:24:44","nodeType":"YulFunctionCall","src":"1819:24:44"}],"functionName":{"name":"mstore","nativeSrc":"1807:6:44","nodeType":"YulIdentifier","src":"1807:6:44"},"nativeSrc":"1807:37:44","nodeType":"YulFunctionCall","src":"1807:37:44"},"nativeSrc":"1807:37:44","nodeType":"YulExpressionStatement","src":"1807:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"1732:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1785:5:44","nodeType":"YulTypedName","src":"1785:5:44","type":""},{"name":"pos","nativeSrc":"1792:3:44","nodeType":"YulTypedName","src":"1792:3:44","type":""}],"src":"1732:118:44"},{"body":{"nativeSrc":"1954:124:44","nodeType":"YulBlock","src":"1954:124:44","statements":[{"nativeSrc":"1964:26:44","nodeType":"YulAssignment","src":"1964:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1976:9:44","nodeType":"YulIdentifier","src":"1976:9:44"},{"kind":"number","nativeSrc":"1987:2:44","nodeType":"YulLiteral","src":"1987:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1972:3:44","nodeType":"YulIdentifier","src":"1972:3:44"},"nativeSrc":"1972:18:44","nodeType":"YulFunctionCall","src":"1972:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1964:4:44","nodeType":"YulIdentifier","src":"1964:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2044:6:44","nodeType":"YulIdentifier","src":"2044:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2057:9:44","nodeType":"YulIdentifier","src":"2057:9:44"},{"kind":"number","nativeSrc":"2068:1:44","nodeType":"YulLiteral","src":"2068:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2053:3:44","nodeType":"YulIdentifier","src":"2053:3:44"},"nativeSrc":"2053:17:44","nodeType":"YulFunctionCall","src":"2053:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2000:43:44","nodeType":"YulIdentifier","src":"2000:43:44"},"nativeSrc":"2000:71:44","nodeType":"YulFunctionCall","src":"2000:71:44"},"nativeSrc":"2000:71:44","nodeType":"YulExpressionStatement","src":"2000:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1856:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1926:9:44","nodeType":"YulTypedName","src":"1926:9:44","type":""},{"name":"value0","nativeSrc":"1938:6:44","nodeType":"YulTypedName","src":"1938:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1949:4:44","nodeType":"YulTypedName","src":"1949:4:44","type":""}],"src":"1856:222:44"}]},"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_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_uint48t_address_fromMemory(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_uint48_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    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":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516129683803806129688339818101604052810190610032919061056c565b308282600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a75760006040517fc22c802200000000000000000000000000000000000000000000000000000000815260040161009e91906105bb565b60405180910390fd5b816001601a6101000a81548165ffffffffffff021916908365ffffffffffff1602179055506100df6000801b8261018960201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506000600360006101000a81548160ff0219169083151502179055506101827fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c3092387f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750961026260201b60201c565b50506105d6565b60008060001b830361024a57600073ffffffffffffffffffffffffffffffffffffffff166101bb6102b260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610208576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61025a83836102dc60201b60201c565b905092915050565b6000801b820361029e576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102ae82826103d960201b60201c565b5050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006102ee838361043a60201b60201c565b6103ce57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061036b6104a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506103d3565b600090505b92915050565b60006103ea836104ac60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000806000838152602001908152602001600020600101549050919050565b600080fd5b600065ffffffffffff82169050919050565b6104eb816104d0565b81146104f657600080fd5b50565b600081519050610508816104e2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105398261050e565b9050919050565b6105498161052e565b811461055457600080fd5b50565b60008151905061056681610540565b92915050565b60008060408385031215610583576105826104cb565b5b6000610591858286016104f9565b92505060206105a285828601610557565b9150509250929050565b6105b58161052e565b82525050565b60006020820190506105d060008301846105ac565b92915050565b6080516123706105f860003960008181610924015261114b01526123706000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611caf565b6105ff565b6040516102279190611cf7565b60405180910390f35b610238610679565b6040516102459190611d33565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d84565b61069c565b60405161027f9190611dc0565b60405180910390f35b6102a2600480360381019061029d9190611e39565b6106bb565b005b6102be60048036038101906102b99190611e39565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d84565b610827565b6040516102f19190611ed8565b60405180910390f35b610314600480360381019061030f9190611d84565b610867565b6040516103249493929190611f1b565b60405180910390f35b6103356108d7565b6040516103429190611cf7565b60405180910390f35b61036560048036038101906103609190611f60565b6108ee565b005b610381600480360381019061037c9190611fb9565b610908565b005b61038b610922565b6040516103989190612007565b60405180910390f35b6103bb60048036038101906103b69190611e39565b610946565b6040516103c89190611cf7565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f09190612022565b60405180910390f35b6104016109e6565b60405161040e9190612022565b60405180910390f35b610431600480360381019061042c9190611e39565b6109f5565b60405161043e9190611cf7565b60405180910390f35b61044f610a5f565b60405161045d92919061203d565b60405180910390f35b61046e610abf565b60405161047b9190611dc0565b60405180910390f35b61049e60048036038101906104999190611d84565b610ac6565b6040516104ab9190612066565b60405180910390f35b6104ce60048036038101906104c991906120bf565b610ae6565b005b6104ea60048036038101906104e591906120ff565b610b02565b005b6104f4610b10565b6040516105019190611dc0565b60405180910390f35b610512610b34565b60405161051f9190611d33565b60405180910390f35b610530610ba2565b005b61053a610c38565b60405161054892919061213f565b60405180910390f35b61056b60048036038101906105669190611d84565b610c7b565b6040516105789190612022565b60405180910390f35b61059b60048036038101906105969190611e39565b610cbb565b005b6105a5610d05565b005b6105c160048036038101906105bc9190612168565b610d1d565b005b6105cb610d36565b6040516105d89190611dc0565b60405180910390f35b6105e9610d5a565b6040516105f69190611dc0565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d7e565b5b9050919050565b600062069780905090565b6000801b61069181610df8565b610699610e0c565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610df8565b6106d78383610e19565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c38565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610ee6565b155b80610788575061078681610efb565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d33565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f0f565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610df8565b610824610f8a565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610df8565b61090482610fed565b5050565b6000801b61091581610df8565b61091e82611068565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610df8565b6109b96110cf565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610ee6565b8015610a945750610a9281610efb565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b3382610af28282611132565b610afc8484611241565b50505050565b610b0c828261135f565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5781610ee6565b8015610b685750610b6781610efb565b5b610b86576001601a9054906101000a900465ffffffffffff16610b9c565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bac610c38565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bce6113fb565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d57610bf16113fb565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c249190612022565b60405180910390fd5b610c35611403565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cf7576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0182826114d2565b5050565b6000801b610d1281610df8565b610d1a6114f4565b50565b610d27838361135f565b610d318282611241565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df15750610df082611501565b5b9050919050565b610e0981610e046113fb565b61156b565b50565b610e176000806115bc565b565b60008060001b8303610ed457600073ffffffffffffffffffffffffffffffffffffffff16610e456109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ede83836116ac565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f176113fb565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f85828261179d565b505050565b610f92611820565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fd66113fb565b604051610fe39190612022565b60405180910390a1565b6000610ff7610b34565b61100042611860565b61100a91906121ea565b905061101682826118ba565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed68260405161105c9190611d33565b60405180910390a25050565b60006110738261196d565b61107c42611860565b61108691906121ea565b905061109282826115bc565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110c392919061203d565b60405180910390a15050565b6110d76119cc565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861111b6113fb565b6040516111289190612022565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111a29190611dc0565b602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612239565b73ffffffffffffffffffffffffffffffffffffffff161461123d5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611234929190612266565b60405180910390fd5b5050565b6112496119cc565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd2336040516113529190612022565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861138981610df8565b6113916119cc565b61139b8284611a0d565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600033905090565b60008061140e610c38565b9150915061141b81610ee6565b158061142d575061142b81610efb565b155b1561146f57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016114669190611d33565b60405180910390fd5b6114836000801b61147e6109bc565b61179d565b506114916000801b83610e19565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114db8261069c565b6114e481610df8565b6114ee838361179d565b50505050565b6114ff6000806118ba565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61157582826109f5565b6115b85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115af929190612266565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115de81610ee6565b1561165d576115ec81610efb565b1561162f57600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555061165c565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116b883836109f5565b61179257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061172f6113fb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611797565b600090505b92915050565b60008060001b831480156117e357506117b46109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180e57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6118188383611b23565b905092915050565b6118286108d7565b61185e576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118b2576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118a99291906122d7565b60405180910390fd5b819050919050565b60006118c4610c38565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061193681610ee6565b15611968577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b600080611978610b34565b90508065ffffffffffff168365ffffffffffff16116119a257828161199d9190612300565b6119c4565b6119c38365ffffffffffff166119b6610679565b65ffffffffffff16611c15565b5b915050919050565b6119d46108d7565b15611a0b576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb28833604051611b169190612022565b60405180910390a4505050565b6000611b2f83836109f5565b15611c0a57600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba76113fb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c0f565b600090505b92915050565b6000611c248284108484611c2c565b905092915050565b6000611c3784611c46565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8c81611c57565b8114611c9757600080fd5b50565b600081359050611ca981611c83565b92915050565b600060208284031215611cc557611cc4611c52565b5b6000611cd384828501611c9a565b91505092915050565b60008115159050919050565b611cf181611cdc565b82525050565b6000602082019050611d0c6000830184611ce8565b92915050565b600065ffffffffffff82169050919050565b611d2d81611d12565b82525050565b6000602082019050611d486000830184611d24565b92915050565b6000819050919050565b611d6181611d4e565b8114611d6c57600080fd5b50565b600081359050611d7e81611d58565b92915050565b600060208284031215611d9a57611d99611c52565b5b6000611da884828501611d6f565b91505092915050565b611dba81611d4e565b82525050565b6000602082019050611dd56000830184611db1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e0682611ddb565b9050919050565b611e1681611dfb565b8114611e2157600080fd5b50565b600081359050611e3381611e0d565b92915050565b60008060408385031215611e5057611e4f611c52565b5b6000611e5e85828601611d6f565b9250506020611e6f85828601611e24565b9150509250929050565b6000819050919050565b6000611e9e611e99611e9484611ddb565b611e79565b611ddb565b9050919050565b6000611eb082611e83565b9050919050565b6000611ec282611ea5565b9050919050565b611ed281611eb7565b82525050565b6000602082019050611eed6000830184611ec9565b92915050565b611efc81611dfb565b82525050565b6000819050919050565b611f1581611f02565b82525050565b6000608082019050611f306000830187611ef3565b611f3d6020830186611ec9565b611f4a6040830185611f0c565b611f576060830184611f0c565b95945050505050565b600060208284031215611f7657611f75611c52565b5b6000611f8484828501611e24565b91505092915050565b611f9681611d12565b8114611fa157600080fd5b50565b600081359050611fb381611f8d565b92915050565b600060208284031215611fcf57611fce611c52565b5b6000611fdd84828501611fa4565b91505092915050565b6000611ff182611ea5565b9050919050565b61200181611fe6565b82525050565b600060208201905061201c6000830184611ff8565b92915050565b60006020820190506120376000830184611ef3565b92915050565b60006040820190506120526000830185611d24565b61205f6020830184611d24565b9392505050565b600060208201905061207b6000830184611f0c565b92915050565b600061208c82611dfb565b9050919050565b61209c81612081565b81146120a757600080fd5b50565b6000813590506120b981612093565b92915050565b600080604083850312156120d6576120d5611c52565b5b60006120e485828601611d6f565b92505060206120f5858286016120aa565b9150509250929050565b6000806040838503121561211657612115611c52565b5b600061212485828601611e24565b925050602061213585828601611d6f565b9150509250929050565b60006040820190506121546000830185611ef3565b6121616020830184611d24565b9392505050565b60008060006060848603121561218157612180611c52565b5b600061218f86828701611e24565b93505060206121a086828701611d6f565b92505060406121b1868287016120aa565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121f582611d12565b915061220083611d12565b9250828201905065ffffffffffff81111561221e5761221d6121bb565b5b92915050565b60008151905061223381611e0d565b92915050565b60006020828403121561224f5761224e611c52565b5b600061225d84828501612224565b91505092915050565b600060408201905061227b6000830185611ef3565b6122886020830184611db1565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122c16122bc6122b78461228f565b611e79565b612299565b9050919050565b6122d1816122a6565b82525050565b60006040820190506122ec60008301856122c8565b6122f96020830184611f0c565b9392505050565b600061230b82611d12565b915061231683611d12565b9250828203905065ffffffffffff811115612334576123336121bb565b5b9291505056fea26469706673582212200c94f0c7e9d9553a80ec23e7f0c094e2e5331fc1d14a822d7cb245195034ad3164736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2968 CODESIZE SUB DUP1 PUSH2 0x2968 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x56C JUMP JUMPDEST ADDRESS DUP3 DUP3 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xDF PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x189 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x182 PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 PUSH2 0x262 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH2 0x5D6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0x24A JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1BB PUSH2 0x2B2 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x208 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0x25A DUP4 DUP4 PUSH2 0x2DC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0x29E JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2AE DUP3 DUP3 PUSH2 0x3D9 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EE DUP4 DUP4 PUSH2 0x43A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x3CE JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x36B PUSH2 0x4A4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EA DUP4 PUSH2 0x4AC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP2 DUP2 DUP5 PUSH32 0xBD79B86FFE0AB8E8776151514217CD7CACD52C909F66475C3AF44E129F0B00FF PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4EB DUP2 PUSH2 0x4D0 JUMP JUMPDEST DUP2 EQ PUSH2 0x4F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x508 DUP2 PUSH2 0x4E2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x539 DUP3 PUSH2 0x50E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x549 DUP2 PUSH2 0x52E JUMP JUMPDEST DUP2 EQ PUSH2 0x554 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x566 DUP2 PUSH2 0x540 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x583 JUMPI PUSH2 0x582 PUSH2 0x4CB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x591 DUP6 DUP3 DUP7 ADD PUSH2 0x4F9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x5A2 DUP6 DUP3 DUP7 ADD PUSH2 0x557 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x5B5 DUP2 PUSH2 0x52E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x2370 PUSH2 0x5F8 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x924 ADD MSTORE PUSH2 0x114B ADD MSTORE PUSH2 0x2370 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 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x59D JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE63AB1E9 EQ PUSH2 0x5C3 JUMPI DUP1 PUSH4 0xF68E9553 EQ PUSH2 0x5E1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xD26CDD20 EQ PUSH2 0x551 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA2A6C0EB GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA2A6C0EB EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0xA692B9EF EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xBE8CD266 EQ PUSH2 0x4EC JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x466 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x7B103999 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x8023597E EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D1 JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x3DB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x367 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x5A75199A EQ PUSH2 0x2CA JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x258 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1CAF JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x238 PUSH2 0x679 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x245 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x256 PUSH2 0x684 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1ED8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x314 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x365 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x1F60 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D9 PUSH2 0x987 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E3 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F0 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x401 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44F PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x203D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46E PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2066 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x20BF JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x512 PUSH2 0xB34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x530 PUSH2 0xBA2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x53A PUSH2 0xC38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x548 SWAP3 SWAP2 SWAP1 PUSH2 0x213F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0xC7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0xCBB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A5 PUSH2 0xD05 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5BC SWAP2 SWAP1 PUSH2 0x2168 JUMP JUMPDEST PUSH2 0xD1D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD36 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5E9 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x672 JUMPI POP PUSH2 0x671 DUP3 PUSH2 0xD7E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x691 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x699 PUSH2 0xE0C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xE19 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x721 JUMPI POP PUSH2 0x6F2 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x731 PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x777 JUMPI POP PUSH2 0x775 DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x788 JUMPI POP PUSH2 0x786 DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x7CA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C1 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x7EE DUP3 DUP3 PUSH2 0xF0F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x81C DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x824 PUSH2 0xF8A JUMP JUMPDEST 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 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x8FB DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x904 DUP3 PUSH2 0xFED JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x915 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x91E DUP3 PUSH2 0x1068 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x968 DUP5 PUSH2 0xC7B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x9B1 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0x10CF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH2 0x9BC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xA82 DUP2 PUSH2 0xEE6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA94 JUMPI POP PUSH2 0xA92 DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER DUP3 PUSH2 0xAF2 DUP3 DUP3 PUSH2 0x1132 JUMP JUMPDEST PUSH2 0xAFC DUP5 DUP5 PUSH2 0x1241 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB0C DUP3 DUP3 PUSH2 0x135F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xB57 DUP2 PUSH2 0xEE6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB68 JUMPI POP PUSH2 0xB67 DUP2 PUSH2 0xEFB JUMP JUMPDEST JUMPDEST PUSH2 0xB86 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBAC PUSH2 0xC38 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xBCE PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC2D JUMPI PUSH2 0xBF1 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC24 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC35 PUSH2 0x1403 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 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 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xCF7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD01 DUP3 DUP3 PUSH2 0x14D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xD12 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0xD1A PUSH2 0x14F4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD27 DUP4 DUP4 PUSH2 0x135F JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH2 0x1241 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A DUP2 JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDF1 JUMPI POP PUSH2 0xDF0 DUP3 PUSH2 0x1501 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE09 DUP2 PUSH2 0xE04 PUSH2 0x13FB JUMP JUMPDEST PUSH2 0x156B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE17 PUSH1 0x0 DUP1 PUSH2 0x15BC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xED4 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE45 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xEDE DUP4 DUP4 PUSH2 0x16AC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF17 PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF7B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF85 DUP3 DUP3 PUSH2 0x179D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF92 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0xFD6 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE3 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFF7 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x1000 TIMESTAMP PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x100A SWAP2 SWAP1 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1016 DUP3 DUP3 PUSH2 0x18BA JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0x105C SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1073 DUP3 PUSH2 0x196D JUMP JUMPDEST PUSH2 0x107C TIMESTAMP PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x1086 SWAP2 SWAP1 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1092 DUP3 DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x10C3 SWAP3 SWAP2 SWAP1 PUSH2 0x203D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x10D7 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x111B PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1128 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A2 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11E3 SWAP2 SWAP1 PUSH2 0x2239 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x123D JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x2266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1249 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC485A79936C258FD12FEF44DD3DE8D3069F7A6386C10E58329849408C91BBCD2 CALLER PUSH1 0x40 MLOAD PUSH2 0x1352 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH2 0x1389 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x1391 PUSH2 0x19CC JUMP JUMPDEST PUSH2 0x139B DUP3 DUP5 PUSH2 0x1A0D JUMP JUMPDEST DUP2 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFB904AC70CCBE99B850406BF60ADA29496703558524D72BCB9E54B76D1040A63 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140E PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x141B DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x142D JUMPI POP PUSH2 0x142B DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x146F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1466 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1483 PUSH1 0x0 DUP1 SHL PUSH2 0x147E PUSH2 0x9BC JUMP JUMPDEST PUSH2 0x179D JUMP JUMPDEST POP PUSH2 0x1491 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xE19 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x14DB DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x14E4 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x14EE DUP4 DUP4 PUSH2 0x179D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x14FF PUSH1 0x0 DUP1 PUSH2 0x18BA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1575 DUP3 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x15B8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15AF SWAP3 SWAP2 SWAP1 PUSH2 0x2266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x15DE DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO PUSH2 0x165D JUMPI PUSH2 0x15EC DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO PUSH2 0x162F JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x165C JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B8 DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x1792 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x172F PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1797 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x17E3 JUMPI POP PUSH2 0x17B4 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x180E JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x1818 DUP4 DUP4 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1828 PUSH2 0x8D7 JUMP JUMPDEST PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8DFC202B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x18B2 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A9 SWAP3 SWAP2 SWAP1 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18C4 PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1936 DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO PUSH2 0x1968 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1978 PUSH2 0xB34 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x19A2 JUMPI DUP3 DUP2 PUSH2 0x199D SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x19C3 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x19B6 PUSH2 0x679 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19D4 PUSH2 0x8D7 JUMP JUMPDEST ISZERO PUSH2 0x1A0B JUMPI PUSH1 0x40 MLOAD PUSH32 0xD93C066500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC4556710B10078AAE76DBDF4AD5EA256F74909069BD8AF417C5C2AEAC18EB288 CALLER PUSH1 0x40 MLOAD PUSH2 0x1B16 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B2F DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST ISZERO PUSH2 0x1C0A JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x1BA7 PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1C0F JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C24 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C2C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C37 DUP5 PUSH2 0x1C46 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C8C DUP2 PUSH2 0x1C57 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CA9 DUP2 PUSH2 0x1C83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CD3 DUP5 DUP3 DUP6 ADD PUSH2 0x1C9A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CF1 DUP2 PUSH2 0x1CDC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D0C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1CE8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2D DUP2 PUSH2 0x1D12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D48 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1D4E JUMP JUMPDEST DUP2 EQ PUSH2 0x1D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D7E DUP2 PUSH2 0x1D58 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D9A JUMPI PUSH2 0x1D99 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA8 DUP5 DUP3 DUP6 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DBA DUP2 PUSH2 0x1D4E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DD5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DB1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E06 DUP3 PUSH2 0x1DDB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E16 DUP2 PUSH2 0x1DFB JUMP JUMPDEST DUP2 EQ PUSH2 0x1E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E33 DUP2 PUSH2 0x1E0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E50 JUMPI PUSH2 0x1E4F PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E5E DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E6F DUP6 DUP3 DUP7 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E9E PUSH2 0x1E99 PUSH2 0x1E94 DUP5 PUSH2 0x1DDB JUMP JUMPDEST PUSH2 0x1E79 JUMP JUMPDEST PUSH2 0x1DDB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB0 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC2 DUP3 PUSH2 0x1EA5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ED2 DUP2 PUSH2 0x1EB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EED PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1DFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F15 DUP2 PUSH2 0x1F02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F30 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x1F3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EC9 JUMP JUMPDEST PUSH2 0x1F4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F0C JUMP JUMPDEST PUSH2 0x1F57 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F76 JUMPI PUSH2 0x1F75 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F84 DUP5 DUP3 DUP6 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F96 DUP2 PUSH2 0x1D12 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FB3 DUP2 PUSH2 0x1F8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FCF JUMPI PUSH2 0x1FCE PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FDD DUP5 DUP3 DUP6 ADD PUSH2 0x1FA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FF1 DUP3 PUSH2 0x1EA5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2001 DUP2 PUSH2 0x1FE6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x201C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2037 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2052 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x205F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x207B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x208C DUP3 PUSH2 0x1DFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x209C DUP2 PUSH2 0x2081 JUMP JUMPDEST DUP2 EQ PUSH2 0x20A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20B9 DUP2 PUSH2 0x2093 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20D6 JUMPI PUSH2 0x20D5 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E4 DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20F5 DUP6 DUP3 DUP7 ADD PUSH2 0x20AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2116 JUMPI PUSH2 0x2115 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2124 DUP6 DUP3 DUP7 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2135 DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2154 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x2161 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2181 JUMPI PUSH2 0x2180 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x218F DUP7 DUP3 DUP8 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21A0 DUP7 DUP3 DUP8 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21B1 DUP7 DUP3 DUP8 ADD PUSH2 0x20AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21F5 DUP3 PUSH2 0x1D12 JUMP JUMPDEST SWAP2 POP PUSH2 0x2200 DUP4 PUSH2 0x1D12 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221E JUMPI PUSH2 0x221D PUSH2 0x21BB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2233 DUP2 PUSH2 0x1E0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x224F JUMPI PUSH2 0x224E PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x225D DUP5 DUP3 DUP6 ADD PUSH2 0x2224 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x227B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x2288 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DB1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22C1 PUSH2 0x22BC PUSH2 0x22B7 DUP5 PUSH2 0x228F JUMP JUMPDEST PUSH2 0x1E79 JUMP JUMPDEST PUSH2 0x2299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22D1 DUP2 PUSH2 0x22A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x22EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22C8 JUMP JUMPDEST PUSH2 0x22F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x230B DUP3 PUSH2 0x1D12 JUMP JUMPDEST SWAP2 POP PUSH2 0x2316 DUP4 PUSH2 0x1D12 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x21BB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC SWAP5 CREATE 0xC7 0xE9 0xD9 SSTORE GASPRICE DUP1 0xEC 0x23 0xE7 CREATE 0xC0 SWAP5 0xE2 0xE5 CALLER 0x1F 0xC1 0xD1 BLOBBASEFEE DUP3 0x2D PUSH29 0xB245195034AD3164736F6C634300081C00330000000000000000000000 ","sourceMap":"531:5894:41:-:0;;;2023:273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2215:4;2148:13;2163:20;2415:1:9;2384:33;;:19;:33;;;2380:115;;2481:1;2440:44;;;;;;;;;;;:::i;:::-;;;;;;;;2380:115;2520:12;2504:13;;:28;;;;;;;;;;;;;;;;;;2542:51;2232:4:6;2553:18:9;;2573:19;2542:10;;;:51;;:::i;:::-;;2308:292;;1157:12:29;1133:37;;;;;;;;;;1089:88;1241:5:23;1231:7;;:15;;;;;;;;;;;;;;;;;;2236:53:41::2;1346:27;1219:35;2236:13;;;:53;;:::i;:::-;2023:273:::0;;531:5894;;5509:370:9;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;;;:14;;:::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;;;:31;;:::i;:::-;5834:38;;5509:370;;;;:::o;6320:248::-;2232:4:6;6424:18:9;;6416:4;:26;6412:104;;6465:40;;;;;;;;;;;;;;6412:104;6525:36;6545:4;6551:9;6525:19;;;:36;;:::i;:::-;6320:248;;:::o;6707:106::-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;5698:247::-;5781:25;5809:18;5822:4;5809:12;;;:18;;:::i;:::-;5781:46;;5862:9;5837:6;:12;5844:4;5837:12;;;;;;;;;;;:22;;:34;;;;5928:9;5909:17;5903:4;5886:52;;;;;;;;;;5771:174;5698:247;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;88:117:44:-;197:1;194;187:12;334:97;370:7;410:14;403:5;399:26;388:37;;334:97;;;:::o;437:120::-;509:23;526:5;509:23;:::i;:::-;502:5;499:34;489:62;;547:1;544;537:12;489:62;437:120;:::o;563:141::-;619:5;650:6;644:13;635:22;;666:32;692:5;666:32;:::i;:::-;563:141;;;;:::o;710:126::-;747:7;787:42;780:5;776:54;765:65;;710:126;;;:::o;842:96::-;879:7;908:24;926:5;908:24;:::i;:::-;897:35;;842:96;;;:::o;944:122::-;1017:24;1035:5;1017:24;:::i;:::-;1010:5;1007:35;997:63;;1056:1;1053;1046:12;997:63;944:122;:::o;1072:143::-;1129:5;1160:6;1154:13;1145:22;;1176:33;1203:5;1176:33;:::i;:::-;1072:143;;;;:::o;1221:505::-;1299:6;1307;1356:2;1344:9;1335:7;1331:23;1327:32;1324:119;;;1362:79;;:::i;:::-;1324:119;1482:1;1507:63;1562:7;1553:6;1542:9;1538:22;1507:63;:::i;:::-;1497:73;;1453:127;1619:2;1645:64;1701:7;1692:6;1681:9;1677:22;1645:64;:::i;:::-;1635:74;;1590:129;1221:505;;;;;:::o;1732:118::-;1819:24;1837:5;1819:24;:::i;:::-;1814:3;1807:37;1732:118;;:::o;1856:222::-;1949:4;1987:2;1976:9;1972:18;1964:26;;2000:71;2068:1;2057:9;2053:17;2044:6;2000:71;:::i;:::-;1856:222;;;;:::o;531:5894:41:-;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_1222":{"entryPoint":2751,"id":1222,"parameterSlots":0,"returnSlots":0},"@PAUSER_ROLE_8159":{"entryPoint":3382,"id":8159,"parameterSlots":0,"returnSlots":0},"@REGISTRAR_MANAGER_ROLE_8149":{"entryPoint":2832,"id":8149,"parameterSlots":0,"returnSlots":0},"@REGISTRAR_ROLE_8154":{"entryPoint":3418,"id":8154,"parameterSlots":0,"returnSlots":0},"@_acceptDefaultAdminTransfer_2244":{"entryPoint":5123,"id":2244,"parameterSlots":0,"returnSlots":0},"@_beginDefaultAdminTransfer_2152":{"entryPoint":4077,"id":2152,"parameterSlots":1,"returnSlots":0},"@_cancelDefaultAdminTransfer_2176":{"entryPoint":5364,"id":2176,"parameterSlots":0,"returnSlots":0},"@_changeDefaultAdminDelay_2287":{"entryPoint":4200,"id":2287,"parameterSlots":1,"returnSlots":0},"@_checkDomainOwner_7203":{"entryPoint":4402,"id":7203,"parameterSlots":2,"returnSlots":0},"@_checkRole_1286":{"entryPoint":3576,"id":1286,"parameterSlots":1,"returnSlots":0},"@_checkRole_1307":{"entryPoint":5483,"id":1307,"parameterSlots":2,"returnSlots":0},"@_delayChangeWait_2339":{"entryPoint":6509,"id":2339,"parameterSlots":1,"returnSlots":1},"@_grantRole_1449":{"entryPoint":5804,"id":1449,"parameterSlots":2,"returnSlots":1},"@_grantRole_1970":{"entryPoint":3609,"id":1970,"parameterSlots":2,"returnSlots":1},"@_hasSchedulePassed_2435":{"entryPoint":3835,"id":2435,"parameterSlots":1,"returnSlots":1},"@_isScheduleSet_2421":{"entryPoint":3814,"id":2421,"parameterSlots":1,"returnSlots":1},"@_msgSender_3399":{"entryPoint":5115,"id":3399,"parameterSlots":0,"returnSlots":1},"@_pause_3591":{"entryPoint":4303,"id":3591,"parameterSlots":0,"returnSlots":0},"@_registerDomain_8375":{"entryPoint":4959,"id":8375,"parameterSlots":2,"returnSlots":0},"@_requireNotPaused_3562":{"entryPoint":6604,"id":3562,"parameterSlots":0,"returnSlots":0},"@_requirePaused_3575":{"entryPoint":6176,"id":3575,"parameterSlots":0,"returnSlots":0},"@_revokeRole_1487":{"entryPoint":6947,"id":1487,"parameterSlots":2,"returnSlots":1},"@_revokeRole_2001":{"entryPoint":6045,"id":2001,"parameterSlots":2,"returnSlots":1},"@_rollbackDefaultAdminDelay_2308":{"entryPoint":3596,"id":2308,"parameterSlots":0,"returnSlots":0},"@_setDomainOwner_8457":{"entryPoint":6669,"id":8457,"parameterSlots":2,"returnSlots":0},"@_setPendingDefaultAdmin_2369":{"entryPoint":6330,"id":2369,"parameterSlots":2,"returnSlots":0},"@_setPendingDelay_2408":{"entryPoint":5564,"id":2408,"parameterSlots":2,"returnSlots":0},"@_setVerifier_8418":{"entryPoint":4673,"id":8418,"parameterSlots":2,"returnSlots":0},"@_unpause_3607":{"entryPoint":3978,"id":3607,"parameterSlots":0,"returnSlots":0},"@acceptDefaultAdminTransfer_2200":{"entryPoint":2978,"id":2200,"parameterSlots":0,"returnSlots":0},"@beginDefaultAdminTransfer_2124":{"entryPoint":2286,"id":2124,"parameterSlots":1,"returnSlots":0},"@cancelDefaultAdminTransfer_2163":{"entryPoint":3333,"id":2163,"parameterSlots":0,"returnSlots":0},"@changeDefaultAdminDelay_2258":{"entryPoint":2312,"id":2258,"parameterSlots":1,"returnSlots":0},"@defaultAdminDelayIncreaseWait_2110":{"entryPoint":1657,"id":2110,"parameterSlots":0,"returnSlots":1},"@defaultAdminDelay_2071":{"entryPoint":2868,"id":2071,"parameterSlots":0,"returnSlots":1},"@defaultAdmin_2035":{"entryPoint":2492,"id":2035,"parameterSlots":0,"returnSlots":1},"@domainHashToRecord_8165":{"entryPoint":2151,"id":8165,"parameterSlots":0,"returnSlots":0},"@domainOwner_8349":{"entryPoint":3195,"id":8349,"parameterSlots":1,"returnSlots":1},"@domainVerifierSetTime_8314":{"entryPoint":2758,"id":8314,"parameterSlots":1,"returnSlots":1},"@domainVerifier_8300":{"entryPoint":2087,"id":8300,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_1321":{"entryPoint":1692,"id":1321,"parameterSlots":1,"returnSlots":1},"@grantRole_8334":{"entryPoint":1723,"id":8334,"parameterSlots":2,"returnSlots":0},"@hasRole_1273":{"entryPoint":2549,"id":1273,"parameterSlots":2,"returnSlots":1},"@isDomainOwner_8265":{"entryPoint":2374,"id":8265,"parameterSlots":2,"returnSlots":1},"@min_4003":{"entryPoint":7189,"id":4003,"parameterSlots":2,"returnSlots":1},"@owner_1816":{"entryPoint":2534,"id":1816,"parameterSlots":0,"returnSlots":1},"@pause_8236":{"entryPoint":2439,"id":8236,"parameterSlots":0,"returnSlots":0},"@paused_3550":{"entryPoint":2263,"id":3550,"parameterSlots":0,"returnSlots":1},"@pendingDefaultAdminDelay_2101":{"entryPoint":2655,"id":2101,"parameterSlots":0,"returnSlots":2},"@pendingDefaultAdmin_2048":{"entryPoint":3128,"id":2048,"parameterSlots":0,"returnSlots":2},"@registerDomainWithVerifier_8225":{"entryPoint":3357,"id":8225,"parameterSlots":3,"returnSlots":0},"@registerDomain_8203":{"entryPoint":2818,"id":8203,"parameterSlots":2,"returnSlots":0},"@registry_7147":{"entryPoint":2338,"id":7147,"parameterSlots":0,"returnSlots":0},"@renounceRole_1382":{"entryPoint":3855,"id":1382,"parameterSlots":2,"returnSlots":0},"@renounceRole_1931":{"entryPoint":1757,"id":1931,"parameterSlots":2,"returnSlots":0},"@revokeRole_1359":{"entryPoint":5330,"id":1359,"parameterSlots":2,"returnSlots":0},"@revokeRole_1870":{"entryPoint":3259,"id":1870,"parameterSlots":2,"returnSlots":0},"@rollbackDefaultAdminDelay_2298":{"entryPoint":1668,"id":2298,"parameterSlots":0,"returnSlots":0},"@setVerifier_8285":{"entryPoint":2790,"id":8285,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1255":{"entryPoint":3454,"id":1255,"parameterSlots":1,"returnSlots":1},"@supportsInterface_1806":{"entryPoint":1535,"id":1806,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3755":{"entryPoint":5377,"id":3755,"parameterSlots":1,"returnSlots":1},"@ternary_3965":{"entryPoint":7212,"id":3965,"parameterSlots":3,"returnSlots":1},"@toUint48_6129":{"entryPoint":6240,"id":6129,"parameterSlots":1,"returnSlots":1},"@toUint_7138":{"entryPoint":7238,"id":7138,"parameterSlots":1,"returnSlots":1},"@unpause_8247":{"entryPoint":2034,"id":8247,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":7716,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":8740,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":7535,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":7322,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IVerifier_$8474":{"entryPoint":8362,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint48":{"entryPoint":8100,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8032,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":8761,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes32":{"entryPoint":8447,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474":{"entryPoint":8552,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32":{"entryPoint":7556,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":7737,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474":{"entryPoint":8383,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":7343,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint48":{"entryPoint":8121,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7923,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":7400,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":7601,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack":{"entryPoint":8184,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack":{"entryPoint":7881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack":{"entryPoint":8904,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":7948,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint48_to_t_uint48_fromStack":{"entryPoint":7460,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":8226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":8806,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7963,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed":{"entryPoint":8511,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":7415,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":7616,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed":{"entryPoint":8199,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IVerifier_$8474__to_t_address__fromStack_reversed":{"entryPoint":7896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed":{"entryPoint":8919,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8294,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed":{"entryPoint":7475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed":{"entryPoint":8253,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"checked_add_t_uint48":{"entryPoint":8682,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint48":{"entryPoint":8960,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":7675,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":7388,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":7502,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":7255,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IVerifier_$8474":{"entryPoint":8321,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_48_by_1":{"entryPoint":8847,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":7643,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":7938,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint48":{"entryPoint":7442,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":8857,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISciRegistry_$8112_to_t_address":{"entryPoint":8166,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IVerifier_$8474_to_t_address":{"entryPoint":7863,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_48_by_1_to_t_uint8":{"entryPoint":8870,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":7845,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":7811,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":7801,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":8635,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":7250,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":7693,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":7512,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":7299,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IVerifier_$8474":{"entryPoint":8339,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint48":{"entryPoint":8077,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12929:44","nodeType":"YulBlock","src":"0:12929:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"378:105:44","nodeType":"YulBlock","src":"378:105:44","statements":[{"nativeSrc":"388:89:44","nodeType":"YulAssignment","src":"388:89:44","value":{"arguments":[{"name":"value","nativeSrc":"403:5:44","nodeType":"YulIdentifier","src":"403:5:44"},{"kind":"number","nativeSrc":"410:66:44","nodeType":"YulLiteral","src":"410:66:44","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:44","nodeType":"YulIdentifier","src":"399:3:44"},"nativeSrc":"399:78:44","nodeType":"YulFunctionCall","src":"399:78:44"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:44","nodeType":"YulIdentifier","src":"388:7:44"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:44","nodeType":"YulTypedName","src":"360:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:44","nodeType":"YulTypedName","src":"370:7:44","type":""}],"src":"334:149:44"},{"body":{"nativeSrc":"531:78:44","nodeType":"YulBlock","src":"531:78:44","statements":[{"body":{"nativeSrc":"587:16:44","nodeType":"YulBlock","src":"587:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:44","nodeType":"YulLiteral","src":"596:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:44","nodeType":"YulLiteral","src":"599:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:44","nodeType":"YulIdentifier","src":"589:6:44"},"nativeSrc":"589:12:44","nodeType":"YulFunctionCall","src":"589:12:44"},"nativeSrc":"589:12:44","nodeType":"YulExpressionStatement","src":"589:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:44","nodeType":"YulIdentifier","src":"554:5:44"},{"arguments":[{"name":"value","nativeSrc":"578:5:44","nodeType":"YulIdentifier","src":"578:5:44"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:44","nodeType":"YulIdentifier","src":"561:16:44"},"nativeSrc":"561:23:44","nodeType":"YulFunctionCall","src":"561:23:44"}],"functionName":{"name":"eq","nativeSrc":"551:2:44","nodeType":"YulIdentifier","src":"551:2:44"},"nativeSrc":"551:34:44","nodeType":"YulFunctionCall","src":"551:34:44"}],"functionName":{"name":"iszero","nativeSrc":"544:6:44","nodeType":"YulIdentifier","src":"544:6:44"},"nativeSrc":"544:42:44","nodeType":"YulFunctionCall","src":"544:42:44"},"nativeSrc":"541:62:44","nodeType":"YulIf","src":"541:62:44"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:44","nodeType":"YulTypedName","src":"524:5:44","type":""}],"src":"489:120:44"},{"body":{"nativeSrc":"666:86:44","nodeType":"YulBlock","src":"666:86:44","statements":[{"nativeSrc":"676:29:44","nodeType":"YulAssignment","src":"676:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:44","nodeType":"YulIdentifier","src":"698:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:44","nodeType":"YulIdentifier","src":"685:12:44"},"nativeSrc":"685:20:44","nodeType":"YulFunctionCall","src":"685:20:44"},"variableNames":[{"name":"value","nativeSrc":"676:5:44","nodeType":"YulIdentifier","src":"676:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:44","nodeType":"YulIdentifier","src":"740:5:44"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:44","nodeType":"YulIdentifier","src":"714:25:44"},"nativeSrc":"714:32:44","nodeType":"YulFunctionCall","src":"714:32:44"},"nativeSrc":"714:32:44","nodeType":"YulExpressionStatement","src":"714:32:44"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:44","nodeType":"YulTypedName","src":"644:6:44","type":""},{"name":"end","nativeSrc":"652:3:44","nodeType":"YulTypedName","src":"652:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:44","nodeType":"YulTypedName","src":"660:5:44","type":""}],"src":"615:137:44"},{"body":{"nativeSrc":"823:262:44","nodeType":"YulBlock","src":"823:262:44","statements":[{"body":{"nativeSrc":"869:83:44","nodeType":"YulBlock","src":"869:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:44","nodeType":"YulIdentifier","src":"871:77:44"},"nativeSrc":"871:79:44","nodeType":"YulFunctionCall","src":"871:79:44"},"nativeSrc":"871:79:44","nodeType":"YulExpressionStatement","src":"871:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:44","nodeType":"YulIdentifier","src":"844:7:44"},{"name":"headStart","nativeSrc":"853:9:44","nodeType":"YulIdentifier","src":"853:9:44"}],"functionName":{"name":"sub","nativeSrc":"840:3:44","nodeType":"YulIdentifier","src":"840:3:44"},"nativeSrc":"840:23:44","nodeType":"YulFunctionCall","src":"840:23:44"},{"kind":"number","nativeSrc":"865:2:44","nodeType":"YulLiteral","src":"865:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:44","nodeType":"YulIdentifier","src":"836:3:44"},"nativeSrc":"836:32:44","nodeType":"YulFunctionCall","src":"836:32:44"},"nativeSrc":"833:119:44","nodeType":"YulIf","src":"833:119:44"},{"nativeSrc":"962:116:44","nodeType":"YulBlock","src":"962:116:44","statements":[{"nativeSrc":"977:15:44","nodeType":"YulVariableDeclaration","src":"977:15:44","value":{"kind":"number","nativeSrc":"991:1:44","nodeType":"YulLiteral","src":"991:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:44","nodeType":"YulTypedName","src":"981:6:44","type":""}]},{"nativeSrc":"1006:62:44","nodeType":"YulAssignment","src":"1006:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:44","nodeType":"YulIdentifier","src":"1040:9:44"},{"name":"offset","nativeSrc":"1051:6:44","nodeType":"YulIdentifier","src":"1051:6:44"}],"functionName":{"name":"add","nativeSrc":"1036:3:44","nodeType":"YulIdentifier","src":"1036:3:44"},"nativeSrc":"1036:22:44","nodeType":"YulFunctionCall","src":"1036:22:44"},{"name":"dataEnd","nativeSrc":"1060:7:44","nodeType":"YulIdentifier","src":"1060:7:44"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:44","nodeType":"YulIdentifier","src":"1016:19:44"},"nativeSrc":"1016:52:44","nodeType":"YulFunctionCall","src":"1016:52:44"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:44","nodeType":"YulIdentifier","src":"1006:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:44","nodeType":"YulTypedName","src":"793:9:44","type":""},{"name":"dataEnd","nativeSrc":"804:7:44","nodeType":"YulTypedName","src":"804:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:44","nodeType":"YulTypedName","src":"816:6:44","type":""}],"src":"758:327:44"},{"body":{"nativeSrc":"1133:48:44","nodeType":"YulBlock","src":"1133:48:44","statements":[{"nativeSrc":"1143:32:44","nodeType":"YulAssignment","src":"1143:32:44","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:44","nodeType":"YulIdentifier","src":"1168:5:44"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:44","nodeType":"YulIdentifier","src":"1161:6:44"},"nativeSrc":"1161:13:44","nodeType":"YulFunctionCall","src":"1161:13:44"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:44","nodeType":"YulIdentifier","src":"1154:6:44"},"nativeSrc":"1154:21:44","nodeType":"YulFunctionCall","src":"1154:21:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:44","nodeType":"YulIdentifier","src":"1143:7:44"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:44","nodeType":"YulTypedName","src":"1115:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:44","nodeType":"YulTypedName","src":"1125:7:44","type":""}],"src":"1091:90:44"},{"body":{"nativeSrc":"1246:50:44","nodeType":"YulBlock","src":"1246:50:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:44","nodeType":"YulIdentifier","src":"1263:3:44"},{"arguments":[{"name":"value","nativeSrc":"1283:5:44","nodeType":"YulIdentifier","src":"1283:5:44"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:44","nodeType":"YulIdentifier","src":"1268:14:44"},"nativeSrc":"1268:21:44","nodeType":"YulFunctionCall","src":"1268:21:44"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:44","nodeType":"YulIdentifier","src":"1256:6:44"},"nativeSrc":"1256:34:44","nodeType":"YulFunctionCall","src":"1256:34:44"},"nativeSrc":"1256:34:44","nodeType":"YulExpressionStatement","src":"1256:34:44"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:44","nodeType":"YulTypedName","src":"1234:5:44","type":""},{"name":"pos","nativeSrc":"1241:3:44","nodeType":"YulTypedName","src":"1241:3:44","type":""}],"src":"1187:109:44"},{"body":{"nativeSrc":"1394:118:44","nodeType":"YulBlock","src":"1394:118:44","statements":[{"nativeSrc":"1404:26:44","nodeType":"YulAssignment","src":"1404:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:44","nodeType":"YulIdentifier","src":"1416:9:44"},{"kind":"number","nativeSrc":"1427:2:44","nodeType":"YulLiteral","src":"1427:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:44","nodeType":"YulIdentifier","src":"1412:3:44"},"nativeSrc":"1412:18:44","nodeType":"YulFunctionCall","src":"1412:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:44","nodeType":"YulIdentifier","src":"1404:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:44","nodeType":"YulIdentifier","src":"1478:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:44","nodeType":"YulIdentifier","src":"1491:9:44"},{"kind":"number","nativeSrc":"1502:1:44","nodeType":"YulLiteral","src":"1502:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:44","nodeType":"YulIdentifier","src":"1487:3:44"},"nativeSrc":"1487:17:44","nodeType":"YulFunctionCall","src":"1487:17:44"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:44","nodeType":"YulIdentifier","src":"1440:37:44"},"nativeSrc":"1440:65:44","nodeType":"YulFunctionCall","src":"1440:65:44"},"nativeSrc":"1440:65:44","nodeType":"YulExpressionStatement","src":"1440:65:44"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:44","nodeType":"YulTypedName","src":"1366:9:44","type":""},{"name":"value0","nativeSrc":"1378:6:44","nodeType":"YulTypedName","src":"1378:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:44","nodeType":"YulTypedName","src":"1389:4:44","type":""}],"src":"1302:210:44"},{"body":{"nativeSrc":"1562:53:44","nodeType":"YulBlock","src":"1562:53:44","statements":[{"nativeSrc":"1572:37:44","nodeType":"YulAssignment","src":"1572:37:44","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:44","nodeType":"YulIdentifier","src":"1587:5:44"},{"kind":"number","nativeSrc":"1594:14:44","nodeType":"YulLiteral","src":"1594:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:44","nodeType":"YulIdentifier","src":"1583:3:44"},"nativeSrc":"1583:26:44","nodeType":"YulFunctionCall","src":"1583:26:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:44","nodeType":"YulIdentifier","src":"1572:7:44"}]}]},"name":"cleanup_t_uint48","nativeSrc":"1518:97:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:44","nodeType":"YulTypedName","src":"1544:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:44","nodeType":"YulTypedName","src":"1554:7:44","type":""}],"src":"1518:97:44"},{"body":{"nativeSrc":"1684:52:44","nodeType":"YulBlock","src":"1684:52:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1701:3:44","nodeType":"YulIdentifier","src":"1701:3:44"},{"arguments":[{"name":"value","nativeSrc":"1723:5:44","nodeType":"YulIdentifier","src":"1723:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"1706:16:44","nodeType":"YulIdentifier","src":"1706:16:44"},"nativeSrc":"1706:23:44","nodeType":"YulFunctionCall","src":"1706:23:44"}],"functionName":{"name":"mstore","nativeSrc":"1694:6:44","nodeType":"YulIdentifier","src":"1694:6:44"},"nativeSrc":"1694:36:44","nodeType":"YulFunctionCall","src":"1694:36:44"},"nativeSrc":"1694:36:44","nodeType":"YulExpressionStatement","src":"1694:36:44"}]},"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1621:115:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1672:5:44","nodeType":"YulTypedName","src":"1672:5:44","type":""},{"name":"pos","nativeSrc":"1679:3:44","nodeType":"YulTypedName","src":"1679:3:44","type":""}],"src":"1621:115:44"},{"body":{"nativeSrc":"1838:122:44","nodeType":"YulBlock","src":"1838:122:44","statements":[{"nativeSrc":"1848:26:44","nodeType":"YulAssignment","src":"1848:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"1860:9:44","nodeType":"YulIdentifier","src":"1860:9:44"},{"kind":"number","nativeSrc":"1871:2:44","nodeType":"YulLiteral","src":"1871:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1856:3:44","nodeType":"YulIdentifier","src":"1856:3:44"},"nativeSrc":"1856:18:44","nodeType":"YulFunctionCall","src":"1856:18:44"},"variableNames":[{"name":"tail","nativeSrc":"1848:4:44","nodeType":"YulIdentifier","src":"1848:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1926:6:44","nodeType":"YulIdentifier","src":"1926:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"1939:9:44","nodeType":"YulIdentifier","src":"1939:9:44"},{"kind":"number","nativeSrc":"1950:1:44","nodeType":"YulLiteral","src":"1950:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1935:3:44","nodeType":"YulIdentifier","src":"1935:3:44"},"nativeSrc":"1935:17:44","nodeType":"YulFunctionCall","src":"1935:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"1884:41:44","nodeType":"YulIdentifier","src":"1884:41:44"},"nativeSrc":"1884:69:44","nodeType":"YulFunctionCall","src":"1884:69:44"},"nativeSrc":"1884:69:44","nodeType":"YulExpressionStatement","src":"1884:69:44"}]},"name":"abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed","nativeSrc":"1742:218:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1810:9:44","nodeType":"YulTypedName","src":"1810:9:44","type":""},{"name":"value0","nativeSrc":"1822:6:44","nodeType":"YulTypedName","src":"1822:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1833:4:44","nodeType":"YulTypedName","src":"1833:4:44","type":""}],"src":"1742:218:44"},{"body":{"nativeSrc":"2011:32:44","nodeType":"YulBlock","src":"2011:32:44","statements":[{"nativeSrc":"2021:16:44","nodeType":"YulAssignment","src":"2021:16:44","value":{"name":"value","nativeSrc":"2032:5:44","nodeType":"YulIdentifier","src":"2032:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"2021:7:44","nodeType":"YulIdentifier","src":"2021:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1966:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1993:5:44","nodeType":"YulTypedName","src":"1993:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2003:7:44","nodeType":"YulTypedName","src":"2003:7:44","type":""}],"src":"1966:77:44"},{"body":{"nativeSrc":"2092:79:44","nodeType":"YulBlock","src":"2092:79:44","statements":[{"body":{"nativeSrc":"2149:16:44","nodeType":"YulBlock","src":"2149:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2158:1:44","nodeType":"YulLiteral","src":"2158:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2161:1:44","nodeType":"YulLiteral","src":"2161:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2151:6:44","nodeType":"YulIdentifier","src":"2151:6:44"},"nativeSrc":"2151:12:44","nodeType":"YulFunctionCall","src":"2151:12:44"},"nativeSrc":"2151:12:44","nodeType":"YulExpressionStatement","src":"2151:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2115:5:44","nodeType":"YulIdentifier","src":"2115:5:44"},{"arguments":[{"name":"value","nativeSrc":"2140:5:44","nodeType":"YulIdentifier","src":"2140:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2122:17:44","nodeType":"YulIdentifier","src":"2122:17:44"},"nativeSrc":"2122:24:44","nodeType":"YulFunctionCall","src":"2122:24:44"}],"functionName":{"name":"eq","nativeSrc":"2112:2:44","nodeType":"YulIdentifier","src":"2112:2:44"},"nativeSrc":"2112:35:44","nodeType":"YulFunctionCall","src":"2112:35:44"}],"functionName":{"name":"iszero","nativeSrc":"2105:6:44","nodeType":"YulIdentifier","src":"2105:6:44"},"nativeSrc":"2105:43:44","nodeType":"YulFunctionCall","src":"2105:43:44"},"nativeSrc":"2102:63:44","nodeType":"YulIf","src":"2102:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"2049:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2085:5:44","nodeType":"YulTypedName","src":"2085:5:44","type":""}],"src":"2049:122:44"},{"body":{"nativeSrc":"2229:87:44","nodeType":"YulBlock","src":"2229:87:44","statements":[{"nativeSrc":"2239:29:44","nodeType":"YulAssignment","src":"2239:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"2261:6:44","nodeType":"YulIdentifier","src":"2261:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"2248:12:44","nodeType":"YulIdentifier","src":"2248:12:44"},"nativeSrc":"2248:20:44","nodeType":"YulFunctionCall","src":"2248:20:44"},"variableNames":[{"name":"value","nativeSrc":"2239:5:44","nodeType":"YulIdentifier","src":"2239:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2304:5:44","nodeType":"YulIdentifier","src":"2304:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"2277:26:44","nodeType":"YulIdentifier","src":"2277:26:44"},"nativeSrc":"2277:33:44","nodeType":"YulFunctionCall","src":"2277:33:44"},"nativeSrc":"2277:33:44","nodeType":"YulExpressionStatement","src":"2277:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"2177:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2207:6:44","nodeType":"YulTypedName","src":"2207:6:44","type":""},{"name":"end","nativeSrc":"2215:3:44","nodeType":"YulTypedName","src":"2215:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2223:5:44","nodeType":"YulTypedName","src":"2223:5:44","type":""}],"src":"2177:139:44"},{"body":{"nativeSrc":"2388:263:44","nodeType":"YulBlock","src":"2388:263:44","statements":[{"body":{"nativeSrc":"2434:83:44","nodeType":"YulBlock","src":"2434:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2436:77:44","nodeType":"YulIdentifier","src":"2436:77:44"},"nativeSrc":"2436:79:44","nodeType":"YulFunctionCall","src":"2436:79:44"},"nativeSrc":"2436:79:44","nodeType":"YulExpressionStatement","src":"2436:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2409:7:44","nodeType":"YulIdentifier","src":"2409:7:44"},{"name":"headStart","nativeSrc":"2418:9:44","nodeType":"YulIdentifier","src":"2418:9:44"}],"functionName":{"name":"sub","nativeSrc":"2405:3:44","nodeType":"YulIdentifier","src":"2405:3:44"},"nativeSrc":"2405:23:44","nodeType":"YulFunctionCall","src":"2405:23:44"},{"kind":"number","nativeSrc":"2430:2:44","nodeType":"YulLiteral","src":"2430:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2401:3:44","nodeType":"YulIdentifier","src":"2401:3:44"},"nativeSrc":"2401:32:44","nodeType":"YulFunctionCall","src":"2401:32:44"},"nativeSrc":"2398:119:44","nodeType":"YulIf","src":"2398:119:44"},{"nativeSrc":"2527:117:44","nodeType":"YulBlock","src":"2527:117:44","statements":[{"nativeSrc":"2542:15:44","nodeType":"YulVariableDeclaration","src":"2542:15:44","value":{"kind":"number","nativeSrc":"2556:1:44","nodeType":"YulLiteral","src":"2556:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2546:6:44","nodeType":"YulTypedName","src":"2546:6:44","type":""}]},{"nativeSrc":"2571:63:44","nodeType":"YulAssignment","src":"2571:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2606:9:44","nodeType":"YulIdentifier","src":"2606:9:44"},{"name":"offset","nativeSrc":"2617:6:44","nodeType":"YulIdentifier","src":"2617:6:44"}],"functionName":{"name":"add","nativeSrc":"2602:3:44","nodeType":"YulIdentifier","src":"2602:3:44"},"nativeSrc":"2602:22:44","nodeType":"YulFunctionCall","src":"2602:22:44"},{"name":"dataEnd","nativeSrc":"2626:7:44","nodeType":"YulIdentifier","src":"2626:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2581:20:44","nodeType":"YulIdentifier","src":"2581:20:44"},"nativeSrc":"2581:53:44","nodeType":"YulFunctionCall","src":"2581:53:44"},"variableNames":[{"name":"value0","nativeSrc":"2571:6:44","nodeType":"YulIdentifier","src":"2571:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"2322:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2358:9:44","nodeType":"YulTypedName","src":"2358:9:44","type":""},{"name":"dataEnd","nativeSrc":"2369:7:44","nodeType":"YulTypedName","src":"2369:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2381:6:44","nodeType":"YulTypedName","src":"2381:6:44","type":""}],"src":"2322:329:44"},{"body":{"nativeSrc":"2722:53:44","nodeType":"YulBlock","src":"2722:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2739:3:44","nodeType":"YulIdentifier","src":"2739:3:44"},{"arguments":[{"name":"value","nativeSrc":"2762:5:44","nodeType":"YulIdentifier","src":"2762:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"2744:17:44","nodeType":"YulIdentifier","src":"2744:17:44"},"nativeSrc":"2744:24:44","nodeType":"YulFunctionCall","src":"2744:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2732:6:44","nodeType":"YulIdentifier","src":"2732:6:44"},"nativeSrc":"2732:37:44","nodeType":"YulFunctionCall","src":"2732:37:44"},"nativeSrc":"2732:37:44","nodeType":"YulExpressionStatement","src":"2732:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2657:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2710:5:44","nodeType":"YulTypedName","src":"2710:5:44","type":""},{"name":"pos","nativeSrc":"2717:3:44","nodeType":"YulTypedName","src":"2717:3:44","type":""}],"src":"2657:118:44"},{"body":{"nativeSrc":"2879:124:44","nodeType":"YulBlock","src":"2879:124:44","statements":[{"nativeSrc":"2889:26:44","nodeType":"YulAssignment","src":"2889:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2901:9:44","nodeType":"YulIdentifier","src":"2901:9:44"},{"kind":"number","nativeSrc":"2912:2:44","nodeType":"YulLiteral","src":"2912:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2897:3:44","nodeType":"YulIdentifier","src":"2897:3:44"},"nativeSrc":"2897:18:44","nodeType":"YulFunctionCall","src":"2897:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2889:4:44","nodeType":"YulIdentifier","src":"2889:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2969:6:44","nodeType":"YulIdentifier","src":"2969:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2982:9:44","nodeType":"YulIdentifier","src":"2982:9:44"},{"kind":"number","nativeSrc":"2993:1:44","nodeType":"YulLiteral","src":"2993:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2978:3:44","nodeType":"YulIdentifier","src":"2978:3:44"},"nativeSrc":"2978:17:44","nodeType":"YulFunctionCall","src":"2978:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"2925:43:44","nodeType":"YulIdentifier","src":"2925:43:44"},"nativeSrc":"2925:71:44","nodeType":"YulFunctionCall","src":"2925:71:44"},"nativeSrc":"2925:71:44","nodeType":"YulExpressionStatement","src":"2925:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"2781:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2851:9:44","nodeType":"YulTypedName","src":"2851:9:44","type":""},{"name":"value0","nativeSrc":"2863:6:44","nodeType":"YulTypedName","src":"2863:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2874:4:44","nodeType":"YulTypedName","src":"2874:4:44","type":""}],"src":"2781:222:44"},{"body":{"nativeSrc":"3054:81:44","nodeType":"YulBlock","src":"3054:81:44","statements":[{"nativeSrc":"3064:65:44","nodeType":"YulAssignment","src":"3064:65:44","value":{"arguments":[{"name":"value","nativeSrc":"3079:5:44","nodeType":"YulIdentifier","src":"3079:5:44"},{"kind":"number","nativeSrc":"3086:42:44","nodeType":"YulLiteral","src":"3086:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3075:3:44","nodeType":"YulIdentifier","src":"3075:3:44"},"nativeSrc":"3075:54:44","nodeType":"YulFunctionCall","src":"3075:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3064:7:44","nodeType":"YulIdentifier","src":"3064:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3009:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3036:5:44","nodeType":"YulTypedName","src":"3036:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3046:7:44","nodeType":"YulTypedName","src":"3046:7:44","type":""}],"src":"3009:126:44"},{"body":{"nativeSrc":"3186:51:44","nodeType":"YulBlock","src":"3186:51:44","statements":[{"nativeSrc":"3196:35:44","nodeType":"YulAssignment","src":"3196:35:44","value":{"arguments":[{"name":"value","nativeSrc":"3225:5:44","nodeType":"YulIdentifier","src":"3225:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3207:17:44","nodeType":"YulIdentifier","src":"3207:17:44"},"nativeSrc":"3207:24:44","nodeType":"YulFunctionCall","src":"3207:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"3196:7:44","nodeType":"YulIdentifier","src":"3196:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"3141:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3168:5:44","nodeType":"YulTypedName","src":"3168:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3178:7:44","nodeType":"YulTypedName","src":"3178:7:44","type":""}],"src":"3141:96:44"},{"body":{"nativeSrc":"3286:79:44","nodeType":"YulBlock","src":"3286:79:44","statements":[{"body":{"nativeSrc":"3343:16:44","nodeType":"YulBlock","src":"3343:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3352:1:44","nodeType":"YulLiteral","src":"3352:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"3355:1:44","nodeType":"YulLiteral","src":"3355:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3345:6:44","nodeType":"YulIdentifier","src":"3345:6:44"},"nativeSrc":"3345:12:44","nodeType":"YulFunctionCall","src":"3345:12:44"},"nativeSrc":"3345:12:44","nodeType":"YulExpressionStatement","src":"3345:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3309:5:44","nodeType":"YulIdentifier","src":"3309:5:44"},{"arguments":[{"name":"value","nativeSrc":"3334:5:44","nodeType":"YulIdentifier","src":"3334:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3316:17:44","nodeType":"YulIdentifier","src":"3316:17:44"},"nativeSrc":"3316:24:44","nodeType":"YulFunctionCall","src":"3316:24:44"}],"functionName":{"name":"eq","nativeSrc":"3306:2:44","nodeType":"YulIdentifier","src":"3306:2:44"},"nativeSrc":"3306:35:44","nodeType":"YulFunctionCall","src":"3306:35:44"}],"functionName":{"name":"iszero","nativeSrc":"3299:6:44","nodeType":"YulIdentifier","src":"3299:6:44"},"nativeSrc":"3299:43:44","nodeType":"YulFunctionCall","src":"3299:43:44"},"nativeSrc":"3296:63:44","nodeType":"YulIf","src":"3296:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"3243:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3279:5:44","nodeType":"YulTypedName","src":"3279:5:44","type":""}],"src":"3243:122:44"},{"body":{"nativeSrc":"3423:87:44","nodeType":"YulBlock","src":"3423:87:44","statements":[{"nativeSrc":"3433:29:44","nodeType":"YulAssignment","src":"3433:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3455:6:44","nodeType":"YulIdentifier","src":"3455:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3442:12:44","nodeType":"YulIdentifier","src":"3442:12:44"},"nativeSrc":"3442:20:44","nodeType":"YulFunctionCall","src":"3442:20:44"},"variableNames":[{"name":"value","nativeSrc":"3433:5:44","nodeType":"YulIdentifier","src":"3433:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3498:5:44","nodeType":"YulIdentifier","src":"3498:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"3471:26:44","nodeType":"YulIdentifier","src":"3471:26:44"},"nativeSrc":"3471:33:44","nodeType":"YulFunctionCall","src":"3471:33:44"},"nativeSrc":"3471:33:44","nodeType":"YulExpressionStatement","src":"3471:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"3371:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3401:6:44","nodeType":"YulTypedName","src":"3401:6:44","type":""},{"name":"end","nativeSrc":"3409:3:44","nodeType":"YulTypedName","src":"3409:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3417:5:44","nodeType":"YulTypedName","src":"3417:5:44","type":""}],"src":"3371:139:44"},{"body":{"nativeSrc":"3599:391:44","nodeType":"YulBlock","src":"3599:391:44","statements":[{"body":{"nativeSrc":"3645:83:44","nodeType":"YulBlock","src":"3645:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3647:77:44","nodeType":"YulIdentifier","src":"3647:77:44"},"nativeSrc":"3647:79:44","nodeType":"YulFunctionCall","src":"3647:79:44"},"nativeSrc":"3647:79:44","nodeType":"YulExpressionStatement","src":"3647:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3620:7:44","nodeType":"YulIdentifier","src":"3620:7:44"},{"name":"headStart","nativeSrc":"3629:9:44","nodeType":"YulIdentifier","src":"3629:9:44"}],"functionName":{"name":"sub","nativeSrc":"3616:3:44","nodeType":"YulIdentifier","src":"3616:3:44"},"nativeSrc":"3616:23:44","nodeType":"YulFunctionCall","src":"3616:23:44"},{"kind":"number","nativeSrc":"3641:2:44","nodeType":"YulLiteral","src":"3641:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3612:3:44","nodeType":"YulIdentifier","src":"3612:3:44"},"nativeSrc":"3612:32:44","nodeType":"YulFunctionCall","src":"3612:32:44"},"nativeSrc":"3609:119:44","nodeType":"YulIf","src":"3609:119:44"},{"nativeSrc":"3738:117:44","nodeType":"YulBlock","src":"3738:117:44","statements":[{"nativeSrc":"3753:15:44","nodeType":"YulVariableDeclaration","src":"3753:15:44","value":{"kind":"number","nativeSrc":"3767:1:44","nodeType":"YulLiteral","src":"3767:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3757:6:44","nodeType":"YulTypedName","src":"3757:6:44","type":""}]},{"nativeSrc":"3782:63:44","nodeType":"YulAssignment","src":"3782:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3817:9:44","nodeType":"YulIdentifier","src":"3817:9:44"},{"name":"offset","nativeSrc":"3828:6:44","nodeType":"YulIdentifier","src":"3828:6:44"}],"functionName":{"name":"add","nativeSrc":"3813:3:44","nodeType":"YulIdentifier","src":"3813:3:44"},"nativeSrc":"3813:22:44","nodeType":"YulFunctionCall","src":"3813:22:44"},{"name":"dataEnd","nativeSrc":"3837:7:44","nodeType":"YulIdentifier","src":"3837:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"3792:20:44","nodeType":"YulIdentifier","src":"3792:20:44"},"nativeSrc":"3792:53:44","nodeType":"YulFunctionCall","src":"3792:53:44"},"variableNames":[{"name":"value0","nativeSrc":"3782:6:44","nodeType":"YulIdentifier","src":"3782:6:44"}]}]},{"nativeSrc":"3865:118:44","nodeType":"YulBlock","src":"3865:118:44","statements":[{"nativeSrc":"3880:16:44","nodeType":"YulVariableDeclaration","src":"3880:16:44","value":{"kind":"number","nativeSrc":"3894:2:44","nodeType":"YulLiteral","src":"3894:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3884:6:44","nodeType":"YulTypedName","src":"3884:6:44","type":""}]},{"nativeSrc":"3910:63:44","nodeType":"YulAssignment","src":"3910:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3945:9:44","nodeType":"YulIdentifier","src":"3945:9:44"},{"name":"offset","nativeSrc":"3956:6:44","nodeType":"YulIdentifier","src":"3956:6:44"}],"functionName":{"name":"add","nativeSrc":"3941:3:44","nodeType":"YulIdentifier","src":"3941:3:44"},"nativeSrc":"3941:22:44","nodeType":"YulFunctionCall","src":"3941:22:44"},{"name":"dataEnd","nativeSrc":"3965:7:44","nodeType":"YulIdentifier","src":"3965:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3920:20:44","nodeType":"YulIdentifier","src":"3920:20:44"},"nativeSrc":"3920:53:44","nodeType":"YulFunctionCall","src":"3920:53:44"},"variableNames":[{"name":"value1","nativeSrc":"3910:6:44","nodeType":"YulIdentifier","src":"3910:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"3516:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3561:9:44","nodeType":"YulTypedName","src":"3561:9:44","type":""},{"name":"dataEnd","nativeSrc":"3572:7:44","nodeType":"YulTypedName","src":"3572:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3584:6:44","nodeType":"YulTypedName","src":"3584:6:44","type":""},{"name":"value1","nativeSrc":"3592:6:44","nodeType":"YulTypedName","src":"3592:6:44","type":""}],"src":"3516:474:44"},{"body":{"nativeSrc":"4028:28:44","nodeType":"YulBlock","src":"4028:28:44","statements":[{"nativeSrc":"4038:12:44","nodeType":"YulAssignment","src":"4038:12:44","value":{"name":"value","nativeSrc":"4045:5:44","nodeType":"YulIdentifier","src":"4045:5:44"},"variableNames":[{"name":"ret","nativeSrc":"4038:3:44","nodeType":"YulIdentifier","src":"4038:3:44"}]}]},"name":"identity","nativeSrc":"3996:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4014:5:44","nodeType":"YulTypedName","src":"4014:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4024:3:44","nodeType":"YulTypedName","src":"4024:3:44","type":""}],"src":"3996:60:44"},{"body":{"nativeSrc":"4122:82:44","nodeType":"YulBlock","src":"4122:82:44","statements":[{"nativeSrc":"4132:66:44","nodeType":"YulAssignment","src":"4132:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4190:5:44","nodeType":"YulIdentifier","src":"4190:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4172:17:44","nodeType":"YulIdentifier","src":"4172:17:44"},"nativeSrc":"4172:24:44","nodeType":"YulFunctionCall","src":"4172:24:44"}],"functionName":{"name":"identity","nativeSrc":"4163:8:44","nodeType":"YulIdentifier","src":"4163:8:44"},"nativeSrc":"4163:34:44","nodeType":"YulFunctionCall","src":"4163:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4145:17:44","nodeType":"YulIdentifier","src":"4145:17:44"},"nativeSrc":"4145:53:44","nodeType":"YulFunctionCall","src":"4145:53:44"},"variableNames":[{"name":"converted","nativeSrc":"4132:9:44","nodeType":"YulIdentifier","src":"4132:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4062:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4102:5:44","nodeType":"YulTypedName","src":"4102:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4112:9:44","nodeType":"YulTypedName","src":"4112:9:44","type":""}],"src":"4062:142:44"},{"body":{"nativeSrc":"4270:66:44","nodeType":"YulBlock","src":"4270:66:44","statements":[{"nativeSrc":"4280:50:44","nodeType":"YulAssignment","src":"4280:50:44","value":{"arguments":[{"name":"value","nativeSrc":"4324:5:44","nodeType":"YulIdentifier","src":"4324:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4293:30:44","nodeType":"YulIdentifier","src":"4293:30:44"},"nativeSrc":"4293:37:44","nodeType":"YulFunctionCall","src":"4293:37:44"},"variableNames":[{"name":"converted","nativeSrc":"4280:9:44","nodeType":"YulIdentifier","src":"4280:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"4210:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4250:5:44","nodeType":"YulTypedName","src":"4250:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4260:9:44","nodeType":"YulTypedName","src":"4260:9:44","type":""}],"src":"4210:126:44"},{"body":{"nativeSrc":"4420:66:44","nodeType":"YulBlock","src":"4420:66:44","statements":[{"nativeSrc":"4430:50:44","nodeType":"YulAssignment","src":"4430:50:44","value":{"arguments":[{"name":"value","nativeSrc":"4474:5:44","nodeType":"YulIdentifier","src":"4474:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"4443:30:44","nodeType":"YulIdentifier","src":"4443:30:44"},"nativeSrc":"4443:37:44","nodeType":"YulFunctionCall","src":"4443:37:44"},"variableNames":[{"name":"converted","nativeSrc":"4430:9:44","nodeType":"YulIdentifier","src":"4430:9:44"}]}]},"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"4342:144:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4400:5:44","nodeType":"YulTypedName","src":"4400:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4410:9:44","nodeType":"YulTypedName","src":"4410:9:44","type":""}],"src":"4342:144:44"},{"body":{"nativeSrc":"4575:84:44","nodeType":"YulBlock","src":"4575:84:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4592:3:44","nodeType":"YulIdentifier","src":"4592:3:44"},{"arguments":[{"name":"value","nativeSrc":"4646:5:44","nodeType":"YulIdentifier","src":"4646:5:44"}],"functionName":{"name":"convert_t_contract$_IVerifier_$8474_to_t_address","nativeSrc":"4597:48:44","nodeType":"YulIdentifier","src":"4597:48:44"},"nativeSrc":"4597:55:44","nodeType":"YulFunctionCall","src":"4597:55:44"}],"functionName":{"name":"mstore","nativeSrc":"4585:6:44","nodeType":"YulIdentifier","src":"4585:6:44"},"nativeSrc":"4585:68:44","nodeType":"YulFunctionCall","src":"4585:68:44"},"nativeSrc":"4585:68:44","nodeType":"YulExpressionStatement","src":"4585:68:44"}]},"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"4492:167:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4563:5:44","nodeType":"YulTypedName","src":"4563:5:44","type":""},{"name":"pos","nativeSrc":"4570:3:44","nodeType":"YulTypedName","src":"4570:3:44","type":""}],"src":"4492:167:44"},{"body":{"nativeSrc":"4781:142:44","nodeType":"YulBlock","src":"4781:142:44","statements":[{"nativeSrc":"4791:26:44","nodeType":"YulAssignment","src":"4791:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"4803:9:44","nodeType":"YulIdentifier","src":"4803:9:44"},{"kind":"number","nativeSrc":"4814:2:44","nodeType":"YulLiteral","src":"4814:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4799:3:44","nodeType":"YulIdentifier","src":"4799:3:44"},"nativeSrc":"4799:18:44","nodeType":"YulFunctionCall","src":"4799:18:44"},"variableNames":[{"name":"tail","nativeSrc":"4791:4:44","nodeType":"YulIdentifier","src":"4791:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4889:6:44","nodeType":"YulIdentifier","src":"4889:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"4902:9:44","nodeType":"YulIdentifier","src":"4902:9:44"},{"kind":"number","nativeSrc":"4913:1:44","nodeType":"YulLiteral","src":"4913:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4898:3:44","nodeType":"YulIdentifier","src":"4898:3:44"},"nativeSrc":"4898:17:44","nodeType":"YulFunctionCall","src":"4898:17:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"4827:61:44","nodeType":"YulIdentifier","src":"4827:61:44"},"nativeSrc":"4827:89:44","nodeType":"YulFunctionCall","src":"4827:89:44"},"nativeSrc":"4827:89:44","nodeType":"YulExpressionStatement","src":"4827:89:44"}]},"name":"abi_encode_tuple_t_contract$_IVerifier_$8474__to_t_address__fromStack_reversed","nativeSrc":"4665:258:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4753:9:44","nodeType":"YulTypedName","src":"4753:9:44","type":""},{"name":"value0","nativeSrc":"4765:6:44","nodeType":"YulTypedName","src":"4765:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4776:4:44","nodeType":"YulTypedName","src":"4776:4:44","type":""}],"src":"4665:258:44"},{"body":{"nativeSrc":"4994:53:44","nodeType":"YulBlock","src":"4994:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5011:3:44","nodeType":"YulIdentifier","src":"5011:3:44"},{"arguments":[{"name":"value","nativeSrc":"5034:5:44","nodeType":"YulIdentifier","src":"5034:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5016:17:44","nodeType":"YulIdentifier","src":"5016:17:44"},"nativeSrc":"5016:24:44","nodeType":"YulFunctionCall","src":"5016:24:44"}],"functionName":{"name":"mstore","nativeSrc":"5004:6:44","nodeType":"YulIdentifier","src":"5004:6:44"},"nativeSrc":"5004:37:44","nodeType":"YulFunctionCall","src":"5004:37:44"},"nativeSrc":"5004:37:44","nodeType":"YulExpressionStatement","src":"5004:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"4929:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4982:5:44","nodeType":"YulTypedName","src":"4982:5:44","type":""},{"name":"pos","nativeSrc":"4989:3:44","nodeType":"YulTypedName","src":"4989:3:44","type":""}],"src":"4929:118:44"},{"body":{"nativeSrc":"5098:32:44","nodeType":"YulBlock","src":"5098:32:44","statements":[{"nativeSrc":"5108:16:44","nodeType":"YulAssignment","src":"5108:16:44","value":{"name":"value","nativeSrc":"5119:5:44","nodeType":"YulIdentifier","src":"5119:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"5108:7:44","nodeType":"YulIdentifier","src":"5108:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5053:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5080:5:44","nodeType":"YulTypedName","src":"5080:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5090:7:44","nodeType":"YulTypedName","src":"5090:7:44","type":""}],"src":"5053:77:44"},{"body":{"nativeSrc":"5201:53:44","nodeType":"YulBlock","src":"5201:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5218:3:44","nodeType":"YulIdentifier","src":"5218:3:44"},{"arguments":[{"name":"value","nativeSrc":"5241:5:44","nodeType":"YulIdentifier","src":"5241:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5223:17:44","nodeType":"YulIdentifier","src":"5223:17:44"},"nativeSrc":"5223:24:44","nodeType":"YulFunctionCall","src":"5223:24:44"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:44","nodeType":"YulIdentifier","src":"5211:6:44"},"nativeSrc":"5211:37:44","nodeType":"YulFunctionCall","src":"5211:37:44"},"nativeSrc":"5211:37:44","nodeType":"YulExpressionStatement","src":"5211:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5136:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5189:5:44","nodeType":"YulTypedName","src":"5189:5:44","type":""},{"name":"pos","nativeSrc":"5196:3:44","nodeType":"YulTypedName","src":"5196:3:44","type":""}],"src":"5136:118:44"},{"body":{"nativeSrc":"5460:389:44","nodeType":"YulBlock","src":"5460:389:44","statements":[{"nativeSrc":"5470:27:44","nodeType":"YulAssignment","src":"5470:27:44","value":{"arguments":[{"name":"headStart","nativeSrc":"5482:9:44","nodeType":"YulIdentifier","src":"5482:9:44"},{"kind":"number","nativeSrc":"5493:3:44","nodeType":"YulLiteral","src":"5493:3:44","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5478:3:44","nodeType":"YulIdentifier","src":"5478:3:44"},"nativeSrc":"5478:19:44","nodeType":"YulFunctionCall","src":"5478:19:44"},"variableNames":[{"name":"tail","nativeSrc":"5470:4:44","nodeType":"YulIdentifier","src":"5470:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5551:6:44","nodeType":"YulIdentifier","src":"5551:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5564:9:44","nodeType":"YulIdentifier","src":"5564:9:44"},{"kind":"number","nativeSrc":"5575:1:44","nodeType":"YulLiteral","src":"5575:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5560:3:44","nodeType":"YulIdentifier","src":"5560:3:44"},"nativeSrc":"5560:17:44","nodeType":"YulFunctionCall","src":"5560:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5507:43:44","nodeType":"YulIdentifier","src":"5507:43:44"},"nativeSrc":"5507:71:44","nodeType":"YulFunctionCall","src":"5507:71:44"},"nativeSrc":"5507:71:44","nodeType":"YulExpressionStatement","src":"5507:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5650:6:44","nodeType":"YulIdentifier","src":"5650:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5663:9:44","nodeType":"YulIdentifier","src":"5663:9:44"},{"kind":"number","nativeSrc":"5674:2:44","nodeType":"YulLiteral","src":"5674:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5659:3:44","nodeType":"YulIdentifier","src":"5659:3:44"},"nativeSrc":"5659:18:44","nodeType":"YulFunctionCall","src":"5659:18:44"}],"functionName":{"name":"abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack","nativeSrc":"5588:61:44","nodeType":"YulIdentifier","src":"5588:61:44"},"nativeSrc":"5588:90:44","nodeType":"YulFunctionCall","src":"5588:90:44"},"nativeSrc":"5588:90:44","nodeType":"YulExpressionStatement","src":"5588:90:44"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"5732:6:44","nodeType":"YulIdentifier","src":"5732:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5745:9:44","nodeType":"YulIdentifier","src":"5745:9:44"},{"kind":"number","nativeSrc":"5756:2:44","nodeType":"YulLiteral","src":"5756:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5741:3:44","nodeType":"YulIdentifier","src":"5741:3:44"},"nativeSrc":"5741:18:44","nodeType":"YulFunctionCall","src":"5741:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5688:43:44","nodeType":"YulIdentifier","src":"5688:43:44"},"nativeSrc":"5688:72:44","nodeType":"YulFunctionCall","src":"5688:72:44"},"nativeSrc":"5688:72:44","nodeType":"YulExpressionStatement","src":"5688:72:44"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"5814:6:44","nodeType":"YulIdentifier","src":"5814:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"5827:9:44","nodeType":"YulIdentifier","src":"5827:9:44"},{"kind":"number","nativeSrc":"5838:2:44","nodeType":"YulLiteral","src":"5838:2:44","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5823:3:44","nodeType":"YulIdentifier","src":"5823:3:44"},"nativeSrc":"5823:18:44","nodeType":"YulFunctionCall","src":"5823:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5770:43:44","nodeType":"YulIdentifier","src":"5770:43:44"},"nativeSrc":"5770:72:44","nodeType":"YulFunctionCall","src":"5770:72:44"},"nativeSrc":"5770:72:44","nodeType":"YulExpressionStatement","src":"5770:72:44"}]},"name":"abi_encode_tuple_t_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5260:589:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5408:9:44","nodeType":"YulTypedName","src":"5408:9:44","type":""},{"name":"value3","nativeSrc":"5420:6:44","nodeType":"YulTypedName","src":"5420:6:44","type":""},{"name":"value2","nativeSrc":"5428:6:44","nodeType":"YulTypedName","src":"5428:6:44","type":""},{"name":"value1","nativeSrc":"5436:6:44","nodeType":"YulTypedName","src":"5436:6:44","type":""},{"name":"value0","nativeSrc":"5444:6:44","nodeType":"YulTypedName","src":"5444:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5455:4:44","nodeType":"YulTypedName","src":"5455:4:44","type":""}],"src":"5260:589:44"},{"body":{"nativeSrc":"5921:263:44","nodeType":"YulBlock","src":"5921:263:44","statements":[{"body":{"nativeSrc":"5967:83:44","nodeType":"YulBlock","src":"5967:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5969:77:44","nodeType":"YulIdentifier","src":"5969:77:44"},"nativeSrc":"5969:79:44","nodeType":"YulFunctionCall","src":"5969:79:44"},"nativeSrc":"5969:79:44","nodeType":"YulExpressionStatement","src":"5969:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5942:7:44","nodeType":"YulIdentifier","src":"5942:7:44"},{"name":"headStart","nativeSrc":"5951:9:44","nodeType":"YulIdentifier","src":"5951:9:44"}],"functionName":{"name":"sub","nativeSrc":"5938:3:44","nodeType":"YulIdentifier","src":"5938:3:44"},"nativeSrc":"5938:23:44","nodeType":"YulFunctionCall","src":"5938:23:44"},{"kind":"number","nativeSrc":"5963:2:44","nodeType":"YulLiteral","src":"5963:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5934:3:44","nodeType":"YulIdentifier","src":"5934:3:44"},"nativeSrc":"5934:32:44","nodeType":"YulFunctionCall","src":"5934:32:44"},"nativeSrc":"5931:119:44","nodeType":"YulIf","src":"5931:119:44"},{"nativeSrc":"6060:117:44","nodeType":"YulBlock","src":"6060:117:44","statements":[{"nativeSrc":"6075:15:44","nodeType":"YulVariableDeclaration","src":"6075:15:44","value":{"kind":"number","nativeSrc":"6089:1:44","nodeType":"YulLiteral","src":"6089:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6079:6:44","nodeType":"YulTypedName","src":"6079:6:44","type":""}]},{"nativeSrc":"6104:63:44","nodeType":"YulAssignment","src":"6104:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6139:9:44","nodeType":"YulIdentifier","src":"6139:9:44"},{"name":"offset","nativeSrc":"6150:6:44","nodeType":"YulIdentifier","src":"6150:6:44"}],"functionName":{"name":"add","nativeSrc":"6135:3:44","nodeType":"YulIdentifier","src":"6135:3:44"},"nativeSrc":"6135:22:44","nodeType":"YulFunctionCall","src":"6135:22:44"},{"name":"dataEnd","nativeSrc":"6159:7:44","nodeType":"YulIdentifier","src":"6159:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6114:20:44","nodeType":"YulIdentifier","src":"6114:20:44"},"nativeSrc":"6114:53:44","nodeType":"YulFunctionCall","src":"6114:53:44"},"variableNames":[{"name":"value0","nativeSrc":"6104:6:44","nodeType":"YulIdentifier","src":"6104:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5855:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5891:9:44","nodeType":"YulTypedName","src":"5891:9:44","type":""},{"name":"dataEnd","nativeSrc":"5902:7:44","nodeType":"YulTypedName","src":"5902:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5914:6:44","nodeType":"YulTypedName","src":"5914:6:44","type":""}],"src":"5855:329:44"},{"body":{"nativeSrc":"6232:78:44","nodeType":"YulBlock","src":"6232:78:44","statements":[{"body":{"nativeSrc":"6288:16:44","nodeType":"YulBlock","src":"6288:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6297:1:44","nodeType":"YulLiteral","src":"6297:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6300:1:44","nodeType":"YulLiteral","src":"6300:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6290:6:44","nodeType":"YulIdentifier","src":"6290:6:44"},"nativeSrc":"6290:12:44","nodeType":"YulFunctionCall","src":"6290:12:44"},"nativeSrc":"6290:12:44","nodeType":"YulExpressionStatement","src":"6290:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6255:5:44","nodeType":"YulIdentifier","src":"6255:5:44"},{"arguments":[{"name":"value","nativeSrc":"6279:5:44","nodeType":"YulIdentifier","src":"6279:5:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"6262:16:44","nodeType":"YulIdentifier","src":"6262:16:44"},"nativeSrc":"6262:23:44","nodeType":"YulFunctionCall","src":"6262:23:44"}],"functionName":{"name":"eq","nativeSrc":"6252:2:44","nodeType":"YulIdentifier","src":"6252:2:44"},"nativeSrc":"6252:34:44","nodeType":"YulFunctionCall","src":"6252:34:44"}],"functionName":{"name":"iszero","nativeSrc":"6245:6:44","nodeType":"YulIdentifier","src":"6245:6:44"},"nativeSrc":"6245:42:44","nodeType":"YulFunctionCall","src":"6245:42:44"},"nativeSrc":"6242:62:44","nodeType":"YulIf","src":"6242:62:44"}]},"name":"validator_revert_t_uint48","nativeSrc":"6190:120:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6225:5:44","nodeType":"YulTypedName","src":"6225:5:44","type":""}],"src":"6190:120:44"},{"body":{"nativeSrc":"6367:86:44","nodeType":"YulBlock","src":"6367:86:44","statements":[{"nativeSrc":"6377:29:44","nodeType":"YulAssignment","src":"6377:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"6399:6:44","nodeType":"YulIdentifier","src":"6399:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"6386:12:44","nodeType":"YulIdentifier","src":"6386:12:44"},"nativeSrc":"6386:20:44","nodeType":"YulFunctionCall","src":"6386:20:44"},"variableNames":[{"name":"value","nativeSrc":"6377:5:44","nodeType":"YulIdentifier","src":"6377:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6441:5:44","nodeType":"YulIdentifier","src":"6441:5:44"}],"functionName":{"name":"validator_revert_t_uint48","nativeSrc":"6415:25:44","nodeType":"YulIdentifier","src":"6415:25:44"},"nativeSrc":"6415:32:44","nodeType":"YulFunctionCall","src":"6415:32:44"},"nativeSrc":"6415:32:44","nodeType":"YulExpressionStatement","src":"6415:32:44"}]},"name":"abi_decode_t_uint48","nativeSrc":"6316:137:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6345:6:44","nodeType":"YulTypedName","src":"6345:6:44","type":""},{"name":"end","nativeSrc":"6353:3:44","nodeType":"YulTypedName","src":"6353:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6361:5:44","nodeType":"YulTypedName","src":"6361:5:44","type":""}],"src":"6316:137:44"},{"body":{"nativeSrc":"6524:262:44","nodeType":"YulBlock","src":"6524:262:44","statements":[{"body":{"nativeSrc":"6570:83:44","nodeType":"YulBlock","src":"6570:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6572:77:44","nodeType":"YulIdentifier","src":"6572:77:44"},"nativeSrc":"6572:79:44","nodeType":"YulFunctionCall","src":"6572:79:44"},"nativeSrc":"6572:79:44","nodeType":"YulExpressionStatement","src":"6572:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6545:7:44","nodeType":"YulIdentifier","src":"6545:7:44"},{"name":"headStart","nativeSrc":"6554:9:44","nodeType":"YulIdentifier","src":"6554:9:44"}],"functionName":{"name":"sub","nativeSrc":"6541:3:44","nodeType":"YulIdentifier","src":"6541:3:44"},"nativeSrc":"6541:23:44","nodeType":"YulFunctionCall","src":"6541:23:44"},{"kind":"number","nativeSrc":"6566:2:44","nodeType":"YulLiteral","src":"6566:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6537:3:44","nodeType":"YulIdentifier","src":"6537:3:44"},"nativeSrc":"6537:32:44","nodeType":"YulFunctionCall","src":"6537:32:44"},"nativeSrc":"6534:119:44","nodeType":"YulIf","src":"6534:119:44"},{"nativeSrc":"6663:116:44","nodeType":"YulBlock","src":"6663:116:44","statements":[{"nativeSrc":"6678:15:44","nodeType":"YulVariableDeclaration","src":"6678:15:44","value":{"kind":"number","nativeSrc":"6692:1:44","nodeType":"YulLiteral","src":"6692:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6682:6:44","nodeType":"YulTypedName","src":"6682:6:44","type":""}]},{"nativeSrc":"6707:62:44","nodeType":"YulAssignment","src":"6707:62:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6741:9:44","nodeType":"YulIdentifier","src":"6741:9:44"},{"name":"offset","nativeSrc":"6752:6:44","nodeType":"YulIdentifier","src":"6752:6:44"}],"functionName":{"name":"add","nativeSrc":"6737:3:44","nodeType":"YulIdentifier","src":"6737:3:44"},"nativeSrc":"6737:22:44","nodeType":"YulFunctionCall","src":"6737:22:44"},{"name":"dataEnd","nativeSrc":"6761:7:44","nodeType":"YulIdentifier","src":"6761:7:44"}],"functionName":{"name":"abi_decode_t_uint48","nativeSrc":"6717:19:44","nodeType":"YulIdentifier","src":"6717:19:44"},"nativeSrc":"6717:52:44","nodeType":"YulFunctionCall","src":"6717:52:44"},"variableNames":[{"name":"value0","nativeSrc":"6707:6:44","nodeType":"YulIdentifier","src":"6707:6:44"}]}]}]},"name":"abi_decode_tuple_t_uint48","nativeSrc":"6459:327:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6494:9:44","nodeType":"YulTypedName","src":"6494:9:44","type":""},{"name":"dataEnd","nativeSrc":"6505:7:44","nodeType":"YulTypedName","src":"6505:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6517:6:44","nodeType":"YulTypedName","src":"6517:6:44","type":""}],"src":"6459:327:44"},{"body":{"nativeSrc":"6873:66:44","nodeType":"YulBlock","src":"6873:66:44","statements":[{"nativeSrc":"6883:50:44","nodeType":"YulAssignment","src":"6883:50:44","value":{"arguments":[{"name":"value","nativeSrc":"6927:5:44","nodeType":"YulIdentifier","src":"6927:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"6896:30:44","nodeType":"YulIdentifier","src":"6896:30:44"},"nativeSrc":"6896:37:44","nodeType":"YulFunctionCall","src":"6896:37:44"},"variableNames":[{"name":"converted","nativeSrc":"6883:9:44","nodeType":"YulIdentifier","src":"6883:9:44"}]}]},"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"6792:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6853:5:44","nodeType":"YulTypedName","src":"6853:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6863:9:44","nodeType":"YulTypedName","src":"6863:9:44","type":""}],"src":"6792:147:44"},{"body":{"nativeSrc":"7031:87:44","nodeType":"YulBlock","src":"7031:87:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7048:3:44","nodeType":"YulIdentifier","src":"7048:3:44"},{"arguments":[{"name":"value","nativeSrc":"7105:5:44","nodeType":"YulIdentifier","src":"7105:5:44"}],"functionName":{"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"7053:51:44","nodeType":"YulIdentifier","src":"7053:51:44"},"nativeSrc":"7053:58:44","nodeType":"YulFunctionCall","src":"7053:58:44"}],"functionName":{"name":"mstore","nativeSrc":"7041:6:44","nodeType":"YulIdentifier","src":"7041:6:44"},"nativeSrc":"7041:71:44","nodeType":"YulFunctionCall","src":"7041:71:44"},"nativeSrc":"7041:71:44","nodeType":"YulExpressionStatement","src":"7041:71:44"}]},"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"6945:173:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7019:5:44","nodeType":"YulTypedName","src":"7019:5:44","type":""},{"name":"pos","nativeSrc":"7026:3:44","nodeType":"YulTypedName","src":"7026:3:44","type":""}],"src":"6945:173:44"},{"body":{"nativeSrc":"7243:145:44","nodeType":"YulBlock","src":"7243:145:44","statements":[{"nativeSrc":"7253:26:44","nodeType":"YulAssignment","src":"7253:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7265:9:44","nodeType":"YulIdentifier","src":"7265:9:44"},{"kind":"number","nativeSrc":"7276:2:44","nodeType":"YulLiteral","src":"7276:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7261:3:44","nodeType":"YulIdentifier","src":"7261:3:44"},"nativeSrc":"7261:18:44","nodeType":"YulFunctionCall","src":"7261:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7253:4:44","nodeType":"YulIdentifier","src":"7253:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7354:6:44","nodeType":"YulIdentifier","src":"7354:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7367:9:44","nodeType":"YulIdentifier","src":"7367:9:44"},{"kind":"number","nativeSrc":"7378:1:44","nodeType":"YulLiteral","src":"7378:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7363:3:44","nodeType":"YulIdentifier","src":"7363:3:44"},"nativeSrc":"7363:17:44","nodeType":"YulFunctionCall","src":"7363:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"7289:64:44","nodeType":"YulIdentifier","src":"7289:64:44"},"nativeSrc":"7289:92:44","nodeType":"YulFunctionCall","src":"7289:92:44"},"nativeSrc":"7289:92:44","nodeType":"YulExpressionStatement","src":"7289:92:44"}]},"name":"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed","nativeSrc":"7124:264:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7215:9:44","nodeType":"YulTypedName","src":"7215:9:44","type":""},{"name":"value0","nativeSrc":"7227:6:44","nodeType":"YulTypedName","src":"7227:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7238:4:44","nodeType":"YulTypedName","src":"7238:4:44","type":""}],"src":"7124:264:44"},{"body":{"nativeSrc":"7492:124:44","nodeType":"YulBlock","src":"7492:124:44","statements":[{"nativeSrc":"7502:26:44","nodeType":"YulAssignment","src":"7502:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7514:9:44","nodeType":"YulIdentifier","src":"7514:9:44"},{"kind":"number","nativeSrc":"7525:2:44","nodeType":"YulLiteral","src":"7525:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7510:3:44","nodeType":"YulIdentifier","src":"7510:3:44"},"nativeSrc":"7510:18:44","nodeType":"YulFunctionCall","src":"7510:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7502:4:44","nodeType":"YulIdentifier","src":"7502:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7582:6:44","nodeType":"YulIdentifier","src":"7582:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7595:9:44","nodeType":"YulIdentifier","src":"7595:9:44"},{"kind":"number","nativeSrc":"7606:1:44","nodeType":"YulLiteral","src":"7606:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7591:3:44","nodeType":"YulIdentifier","src":"7591:3:44"},"nativeSrc":"7591:17:44","nodeType":"YulFunctionCall","src":"7591:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7538:43:44","nodeType":"YulIdentifier","src":"7538:43:44"},"nativeSrc":"7538:71:44","nodeType":"YulFunctionCall","src":"7538:71:44"},"nativeSrc":"7538:71:44","nodeType":"YulExpressionStatement","src":"7538:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7394:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7464:9:44","nodeType":"YulTypedName","src":"7464:9:44","type":""},{"name":"value0","nativeSrc":"7476:6:44","nodeType":"YulTypedName","src":"7476:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7487:4:44","nodeType":"YulTypedName","src":"7487:4:44","type":""}],"src":"7394:222:44"},{"body":{"nativeSrc":"7744:202:44","nodeType":"YulBlock","src":"7744:202:44","statements":[{"nativeSrc":"7754:26:44","nodeType":"YulAssignment","src":"7754:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"7766:9:44","nodeType":"YulIdentifier","src":"7766:9:44"},{"kind":"number","nativeSrc":"7777:2:44","nodeType":"YulLiteral","src":"7777:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7762:3:44","nodeType":"YulIdentifier","src":"7762:3:44"},"nativeSrc":"7762:18:44","nodeType":"YulFunctionCall","src":"7762:18:44"},"variableNames":[{"name":"tail","nativeSrc":"7754:4:44","nodeType":"YulIdentifier","src":"7754:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7832:6:44","nodeType":"YulIdentifier","src":"7832:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7845:9:44","nodeType":"YulIdentifier","src":"7845:9:44"},{"kind":"number","nativeSrc":"7856:1:44","nodeType":"YulLiteral","src":"7856:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7841:3:44","nodeType":"YulIdentifier","src":"7841:3:44"},"nativeSrc":"7841:17:44","nodeType":"YulFunctionCall","src":"7841:17:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7790:41:44","nodeType":"YulIdentifier","src":"7790:41:44"},"nativeSrc":"7790:69:44","nodeType":"YulFunctionCall","src":"7790:69:44"},"nativeSrc":"7790:69:44","nodeType":"YulExpressionStatement","src":"7790:69:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"7911:6:44","nodeType":"YulIdentifier","src":"7911:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"7924:9:44","nodeType":"YulIdentifier","src":"7924:9:44"},{"kind":"number","nativeSrc":"7935:2:44","nodeType":"YulLiteral","src":"7935:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7920:3:44","nodeType":"YulIdentifier","src":"7920:3:44"},"nativeSrc":"7920:18:44","nodeType":"YulFunctionCall","src":"7920:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"7869:41:44","nodeType":"YulIdentifier","src":"7869:41:44"},"nativeSrc":"7869:70:44","nodeType":"YulFunctionCall","src":"7869:70:44"},"nativeSrc":"7869:70:44","nodeType":"YulExpressionStatement","src":"7869:70:44"}]},"name":"abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed","nativeSrc":"7622:324:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7708:9:44","nodeType":"YulTypedName","src":"7708:9:44","type":""},{"name":"value1","nativeSrc":"7720:6:44","nodeType":"YulTypedName","src":"7720:6:44","type":""},{"name":"value0","nativeSrc":"7728:6:44","nodeType":"YulTypedName","src":"7728:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7739:4:44","nodeType":"YulTypedName","src":"7739:4:44","type":""}],"src":"7622:324:44"},{"body":{"nativeSrc":"8050:124:44","nodeType":"YulBlock","src":"8050:124:44","statements":[{"nativeSrc":"8060:26:44","nodeType":"YulAssignment","src":"8060:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8072:9:44","nodeType":"YulIdentifier","src":"8072:9:44"},{"kind":"number","nativeSrc":"8083:2:44","nodeType":"YulLiteral","src":"8083:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8068:3:44","nodeType":"YulIdentifier","src":"8068:3:44"},"nativeSrc":"8068:18:44","nodeType":"YulFunctionCall","src":"8068:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8060:4:44","nodeType":"YulIdentifier","src":"8060:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8140:6:44","nodeType":"YulIdentifier","src":"8140:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8153:9:44","nodeType":"YulIdentifier","src":"8153:9:44"},{"kind":"number","nativeSrc":"8164:1:44","nodeType":"YulLiteral","src":"8164:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8149:3:44","nodeType":"YulIdentifier","src":"8149:3:44"},"nativeSrc":"8149:17:44","nodeType":"YulFunctionCall","src":"8149:17:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8096:43:44","nodeType":"YulIdentifier","src":"8096:43:44"},"nativeSrc":"8096:71:44","nodeType":"YulFunctionCall","src":"8096:71:44"},"nativeSrc":"8096:71:44","nodeType":"YulExpressionStatement","src":"8096:71:44"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7952:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8022:9:44","nodeType":"YulTypedName","src":"8022:9:44","type":""},{"name":"value0","nativeSrc":"8034:6:44","nodeType":"YulTypedName","src":"8034:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8045:4:44","nodeType":"YulTypedName","src":"8045:4:44","type":""}],"src":"7952:222:44"},{"body":{"nativeSrc":"8243:51:44","nodeType":"YulBlock","src":"8243:51:44","statements":[{"nativeSrc":"8253:35:44","nodeType":"YulAssignment","src":"8253:35:44","value":{"arguments":[{"name":"value","nativeSrc":"8282:5:44","nodeType":"YulIdentifier","src":"8282:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8264:17:44","nodeType":"YulIdentifier","src":"8264:17:44"},"nativeSrc":"8264:24:44","nodeType":"YulFunctionCall","src":"8264:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"8253:7:44","nodeType":"YulIdentifier","src":"8253:7:44"}]}]},"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"8180:114:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8225:5:44","nodeType":"YulTypedName","src":"8225:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8235:7:44","nodeType":"YulTypedName","src":"8235:7:44","type":""}],"src":"8180:114:44"},{"body":{"nativeSrc":"8361:97:44","nodeType":"YulBlock","src":"8361:97:44","statements":[{"body":{"nativeSrc":"8436:16:44","nodeType":"YulBlock","src":"8436:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8445:1:44","nodeType":"YulLiteral","src":"8445:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"8448:1:44","nodeType":"YulLiteral","src":"8448:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8438:6:44","nodeType":"YulIdentifier","src":"8438:6:44"},"nativeSrc":"8438:12:44","nodeType":"YulFunctionCall","src":"8438:12:44"},"nativeSrc":"8438:12:44","nodeType":"YulExpressionStatement","src":"8438:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8384:5:44","nodeType":"YulIdentifier","src":"8384:5:44"},{"arguments":[{"name":"value","nativeSrc":"8427:5:44","nodeType":"YulIdentifier","src":"8427:5:44"}],"functionName":{"name":"cleanup_t_contract$_IVerifier_$8474","nativeSrc":"8391:35:44","nodeType":"YulIdentifier","src":"8391:35:44"},"nativeSrc":"8391:42:44","nodeType":"YulFunctionCall","src":"8391:42:44"}],"functionName":{"name":"eq","nativeSrc":"8381:2:44","nodeType":"YulIdentifier","src":"8381:2:44"},"nativeSrc":"8381:53:44","nodeType":"YulFunctionCall","src":"8381:53:44"}],"functionName":{"name":"iszero","nativeSrc":"8374:6:44","nodeType":"YulIdentifier","src":"8374:6:44"},"nativeSrc":"8374:61:44","nodeType":"YulFunctionCall","src":"8374:61:44"},"nativeSrc":"8371:81:44","nodeType":"YulIf","src":"8371:81:44"}]},"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"8300:158:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8354:5:44","nodeType":"YulTypedName","src":"8354:5:44","type":""}],"src":"8300:158:44"},{"body":{"nativeSrc":"8534:105:44","nodeType":"YulBlock","src":"8534:105:44","statements":[{"nativeSrc":"8544:29:44","nodeType":"YulAssignment","src":"8544:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"8566:6:44","nodeType":"YulIdentifier","src":"8566:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"8553:12:44","nodeType":"YulIdentifier","src":"8553:12:44"},"nativeSrc":"8553:20:44","nodeType":"YulFunctionCall","src":"8553:20:44"},"variableNames":[{"name":"value","nativeSrc":"8544:5:44","nodeType":"YulIdentifier","src":"8544:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8627:5:44","nodeType":"YulIdentifier","src":"8627:5:44"}],"functionName":{"name":"validator_revert_t_contract$_IVerifier_$8474","nativeSrc":"8582:44:44","nodeType":"YulIdentifier","src":"8582:44:44"},"nativeSrc":"8582:51:44","nodeType":"YulFunctionCall","src":"8582:51:44"},"nativeSrc":"8582:51:44","nodeType":"YulExpressionStatement","src":"8582:51:44"}]},"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"8464:175:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8512:6:44","nodeType":"YulTypedName","src":"8512:6:44","type":""},{"name":"end","nativeSrc":"8520:3:44","nodeType":"YulTypedName","src":"8520:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8528:5:44","nodeType":"YulTypedName","src":"8528:5:44","type":""}],"src":"8464:175:44"},{"body":{"nativeSrc":"8746:409:44","nodeType":"YulBlock","src":"8746:409:44","statements":[{"body":{"nativeSrc":"8792:83:44","nodeType":"YulBlock","src":"8792:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8794:77:44","nodeType":"YulIdentifier","src":"8794:77:44"},"nativeSrc":"8794:79:44","nodeType":"YulFunctionCall","src":"8794:79:44"},"nativeSrc":"8794:79:44","nodeType":"YulExpressionStatement","src":"8794:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8767:7:44","nodeType":"YulIdentifier","src":"8767:7:44"},{"name":"headStart","nativeSrc":"8776:9:44","nodeType":"YulIdentifier","src":"8776:9:44"}],"functionName":{"name":"sub","nativeSrc":"8763:3:44","nodeType":"YulIdentifier","src":"8763:3:44"},"nativeSrc":"8763:23:44","nodeType":"YulFunctionCall","src":"8763:23:44"},{"kind":"number","nativeSrc":"8788:2:44","nodeType":"YulLiteral","src":"8788:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8759:3:44","nodeType":"YulIdentifier","src":"8759:3:44"},"nativeSrc":"8759:32:44","nodeType":"YulFunctionCall","src":"8759:32:44"},"nativeSrc":"8756:119:44","nodeType":"YulIf","src":"8756:119:44"},{"nativeSrc":"8885:117:44","nodeType":"YulBlock","src":"8885:117:44","statements":[{"nativeSrc":"8900:15:44","nodeType":"YulVariableDeclaration","src":"8900:15:44","value":{"kind":"number","nativeSrc":"8914:1:44","nodeType":"YulLiteral","src":"8914:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8904:6:44","nodeType":"YulTypedName","src":"8904:6:44","type":""}]},{"nativeSrc":"8929:63:44","nodeType":"YulAssignment","src":"8929:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8964:9:44","nodeType":"YulIdentifier","src":"8964:9:44"},{"name":"offset","nativeSrc":"8975:6:44","nodeType":"YulIdentifier","src":"8975:6:44"}],"functionName":{"name":"add","nativeSrc":"8960:3:44","nodeType":"YulIdentifier","src":"8960:3:44"},"nativeSrc":"8960:22:44","nodeType":"YulFunctionCall","src":"8960:22:44"},{"name":"dataEnd","nativeSrc":"8984:7:44","nodeType":"YulIdentifier","src":"8984:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"8939:20:44","nodeType":"YulIdentifier","src":"8939:20:44"},"nativeSrc":"8939:53:44","nodeType":"YulFunctionCall","src":"8939:53:44"},"variableNames":[{"name":"value0","nativeSrc":"8929:6:44","nodeType":"YulIdentifier","src":"8929:6:44"}]}]},{"nativeSrc":"9012:136:44","nodeType":"YulBlock","src":"9012:136:44","statements":[{"nativeSrc":"9027:16:44","nodeType":"YulVariableDeclaration","src":"9027:16:44","value":{"kind":"number","nativeSrc":"9041:2:44","nodeType":"YulLiteral","src":"9041:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9031:6:44","nodeType":"YulTypedName","src":"9031:6:44","type":""}]},{"nativeSrc":"9057:81:44","nodeType":"YulAssignment","src":"9057:81:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9110:9:44","nodeType":"YulIdentifier","src":"9110:9:44"},{"name":"offset","nativeSrc":"9121:6:44","nodeType":"YulIdentifier","src":"9121:6:44"}],"functionName":{"name":"add","nativeSrc":"9106:3:44","nodeType":"YulIdentifier","src":"9106:3:44"},"nativeSrc":"9106:22:44","nodeType":"YulFunctionCall","src":"9106:22:44"},{"name":"dataEnd","nativeSrc":"9130:7:44","nodeType":"YulIdentifier","src":"9130:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"9067:38:44","nodeType":"YulIdentifier","src":"9067:38:44"},"nativeSrc":"9067:71:44","nodeType":"YulFunctionCall","src":"9067:71:44"},"variableNames":[{"name":"value1","nativeSrc":"9057:6:44","nodeType":"YulIdentifier","src":"9057:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474","nativeSrc":"8645:510:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8708:9:44","nodeType":"YulTypedName","src":"8708:9:44","type":""},{"name":"dataEnd","nativeSrc":"8719:7:44","nodeType":"YulTypedName","src":"8719:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8731:6:44","nodeType":"YulTypedName","src":"8731:6:44","type":""},{"name":"value1","nativeSrc":"8739:6:44","nodeType":"YulTypedName","src":"8739:6:44","type":""}],"src":"8645:510:44"},{"body":{"nativeSrc":"9244:391:44","nodeType":"YulBlock","src":"9244:391:44","statements":[{"body":{"nativeSrc":"9290:83:44","nodeType":"YulBlock","src":"9290:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9292:77:44","nodeType":"YulIdentifier","src":"9292:77:44"},"nativeSrc":"9292:79:44","nodeType":"YulFunctionCall","src":"9292:79:44"},"nativeSrc":"9292:79:44","nodeType":"YulExpressionStatement","src":"9292:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9265:7:44","nodeType":"YulIdentifier","src":"9265:7:44"},{"name":"headStart","nativeSrc":"9274:9:44","nodeType":"YulIdentifier","src":"9274:9:44"}],"functionName":{"name":"sub","nativeSrc":"9261:3:44","nodeType":"YulIdentifier","src":"9261:3:44"},"nativeSrc":"9261:23:44","nodeType":"YulFunctionCall","src":"9261:23:44"},{"kind":"number","nativeSrc":"9286:2:44","nodeType":"YulLiteral","src":"9286:2:44","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9257:3:44","nodeType":"YulIdentifier","src":"9257:3:44"},"nativeSrc":"9257:32:44","nodeType":"YulFunctionCall","src":"9257:32:44"},"nativeSrc":"9254:119:44","nodeType":"YulIf","src":"9254:119:44"},{"nativeSrc":"9383:117:44","nodeType":"YulBlock","src":"9383:117:44","statements":[{"nativeSrc":"9398:15:44","nodeType":"YulVariableDeclaration","src":"9398:15:44","value":{"kind":"number","nativeSrc":"9412:1:44","nodeType":"YulLiteral","src":"9412:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9402:6:44","nodeType":"YulTypedName","src":"9402:6:44","type":""}]},{"nativeSrc":"9427:63:44","nodeType":"YulAssignment","src":"9427:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9462:9:44","nodeType":"YulIdentifier","src":"9462:9:44"},{"name":"offset","nativeSrc":"9473:6:44","nodeType":"YulIdentifier","src":"9473:6:44"}],"functionName":{"name":"add","nativeSrc":"9458:3:44","nodeType":"YulIdentifier","src":"9458:3:44"},"nativeSrc":"9458:22:44","nodeType":"YulFunctionCall","src":"9458:22:44"},{"name":"dataEnd","nativeSrc":"9482:7:44","nodeType":"YulIdentifier","src":"9482:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9437:20:44","nodeType":"YulIdentifier","src":"9437:20:44"},"nativeSrc":"9437:53:44","nodeType":"YulFunctionCall","src":"9437:53:44"},"variableNames":[{"name":"value0","nativeSrc":"9427:6:44","nodeType":"YulIdentifier","src":"9427:6:44"}]}]},{"nativeSrc":"9510:118:44","nodeType":"YulBlock","src":"9510:118:44","statements":[{"nativeSrc":"9525:16:44","nodeType":"YulVariableDeclaration","src":"9525:16:44","value":{"kind":"number","nativeSrc":"9539:2:44","nodeType":"YulLiteral","src":"9539:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9529:6:44","nodeType":"YulTypedName","src":"9529:6:44","type":""}]},{"nativeSrc":"9555:63:44","nodeType":"YulAssignment","src":"9555:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9590:9:44","nodeType":"YulIdentifier","src":"9590:9:44"},{"name":"offset","nativeSrc":"9601:6:44","nodeType":"YulIdentifier","src":"9601:6:44"}],"functionName":{"name":"add","nativeSrc":"9586:3:44","nodeType":"YulIdentifier","src":"9586:3:44"},"nativeSrc":"9586:22:44","nodeType":"YulFunctionCall","src":"9586:22:44"},{"name":"dataEnd","nativeSrc":"9610:7:44","nodeType":"YulIdentifier","src":"9610:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"9565:20:44","nodeType":"YulIdentifier","src":"9565:20:44"},"nativeSrc":"9565:53:44","nodeType":"YulFunctionCall","src":"9565:53:44"},"variableNames":[{"name":"value1","nativeSrc":"9555:6:44","nodeType":"YulIdentifier","src":"9555:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nativeSrc":"9161:474:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9206:9:44","nodeType":"YulTypedName","src":"9206:9:44","type":""},{"name":"dataEnd","nativeSrc":"9217:7:44","nodeType":"YulTypedName","src":"9217:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9229:6:44","nodeType":"YulTypedName","src":"9229:6:44","type":""},{"name":"value1","nativeSrc":"9237:6:44","nodeType":"YulTypedName","src":"9237:6:44","type":""}],"src":"9161:474:44"},{"body":{"nativeSrc":"9765:204:44","nodeType":"YulBlock","src":"9765:204:44","statements":[{"nativeSrc":"9775:26:44","nodeType":"YulAssignment","src":"9775:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"9787:9:44","nodeType":"YulIdentifier","src":"9787:9:44"},{"kind":"number","nativeSrc":"9798:2:44","nodeType":"YulLiteral","src":"9798:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9783:3:44","nodeType":"YulIdentifier","src":"9783:3:44"},"nativeSrc":"9783:18:44","nodeType":"YulFunctionCall","src":"9783:18:44"},"variableNames":[{"name":"tail","nativeSrc":"9775:4:44","nodeType":"YulIdentifier","src":"9775:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9855:6:44","nodeType":"YulIdentifier","src":"9855:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9868:9:44","nodeType":"YulIdentifier","src":"9868:9:44"},{"kind":"number","nativeSrc":"9879:1:44","nodeType":"YulLiteral","src":"9879:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9864:3:44","nodeType":"YulIdentifier","src":"9864:3:44"},"nativeSrc":"9864:17:44","nodeType":"YulFunctionCall","src":"9864:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9811:43:44","nodeType":"YulIdentifier","src":"9811:43:44"},"nativeSrc":"9811:71:44","nodeType":"YulFunctionCall","src":"9811:71:44"},"nativeSrc":"9811:71:44","nodeType":"YulExpressionStatement","src":"9811:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9934:6:44","nodeType":"YulIdentifier","src":"9934:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9947:9:44","nodeType":"YulIdentifier","src":"9947:9:44"},{"kind":"number","nativeSrc":"9958:2:44","nodeType":"YulLiteral","src":"9958:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9943:3:44","nodeType":"YulIdentifier","src":"9943:3:44"},"nativeSrc":"9943:18:44","nodeType":"YulFunctionCall","src":"9943:18:44"}],"functionName":{"name":"abi_encode_t_uint48_to_t_uint48_fromStack","nativeSrc":"9892:41:44","nodeType":"YulIdentifier","src":"9892:41:44"},"nativeSrc":"9892:70:44","nodeType":"YulFunctionCall","src":"9892:70:44"},"nativeSrc":"9892:70:44","nodeType":"YulExpressionStatement","src":"9892:70:44"}]},"name":"abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__fromStack_reversed","nativeSrc":"9641:328:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9729:9:44","nodeType":"YulTypedName","src":"9729:9:44","type":""},{"name":"value1","nativeSrc":"9741:6:44","nodeType":"YulTypedName","src":"9741:6:44","type":""},{"name":"value0","nativeSrc":"9749:6:44","nodeType":"YulTypedName","src":"9749:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9760:4:44","nodeType":"YulTypedName","src":"9760:4:44","type":""}],"src":"9641:328:44"},{"body":{"nativeSrc":"10093:537:44","nodeType":"YulBlock","src":"10093:537:44","statements":[{"body":{"nativeSrc":"10139:83:44","nodeType":"YulBlock","src":"10139:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10141:77:44","nodeType":"YulIdentifier","src":"10141:77:44"},"nativeSrc":"10141:79:44","nodeType":"YulFunctionCall","src":"10141:79:44"},"nativeSrc":"10141:79:44","nodeType":"YulExpressionStatement","src":"10141:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10114:7:44","nodeType":"YulIdentifier","src":"10114:7:44"},{"name":"headStart","nativeSrc":"10123:9:44","nodeType":"YulIdentifier","src":"10123:9:44"}],"functionName":{"name":"sub","nativeSrc":"10110:3:44","nodeType":"YulIdentifier","src":"10110:3:44"},"nativeSrc":"10110:23:44","nodeType":"YulFunctionCall","src":"10110:23:44"},{"kind":"number","nativeSrc":"10135:2:44","nodeType":"YulLiteral","src":"10135:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"10106:3:44","nodeType":"YulIdentifier","src":"10106:3:44"},"nativeSrc":"10106:32:44","nodeType":"YulFunctionCall","src":"10106:32:44"},"nativeSrc":"10103:119:44","nodeType":"YulIf","src":"10103:119:44"},{"nativeSrc":"10232:117:44","nodeType":"YulBlock","src":"10232:117:44","statements":[{"nativeSrc":"10247:15:44","nodeType":"YulVariableDeclaration","src":"10247:15:44","value":{"kind":"number","nativeSrc":"10261:1:44","nodeType":"YulLiteral","src":"10261:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10251:6:44","nodeType":"YulTypedName","src":"10251:6:44","type":""}]},{"nativeSrc":"10276:63:44","nodeType":"YulAssignment","src":"10276:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10311:9:44","nodeType":"YulIdentifier","src":"10311:9:44"},{"name":"offset","nativeSrc":"10322:6:44","nodeType":"YulIdentifier","src":"10322:6:44"}],"functionName":{"name":"add","nativeSrc":"10307:3:44","nodeType":"YulIdentifier","src":"10307:3:44"},"nativeSrc":"10307:22:44","nodeType":"YulFunctionCall","src":"10307:22:44"},{"name":"dataEnd","nativeSrc":"10331:7:44","nodeType":"YulIdentifier","src":"10331:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10286:20:44","nodeType":"YulIdentifier","src":"10286:20:44"},"nativeSrc":"10286:53:44","nodeType":"YulFunctionCall","src":"10286:53:44"},"variableNames":[{"name":"value0","nativeSrc":"10276:6:44","nodeType":"YulIdentifier","src":"10276:6:44"}]}]},{"nativeSrc":"10359:118:44","nodeType":"YulBlock","src":"10359:118:44","statements":[{"nativeSrc":"10374:16:44","nodeType":"YulVariableDeclaration","src":"10374:16:44","value":{"kind":"number","nativeSrc":"10388:2:44","nodeType":"YulLiteral","src":"10388:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10378:6:44","nodeType":"YulTypedName","src":"10378:6:44","type":""}]},{"nativeSrc":"10404:63:44","nodeType":"YulAssignment","src":"10404:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10439:9:44","nodeType":"YulIdentifier","src":"10439:9:44"},{"name":"offset","nativeSrc":"10450:6:44","nodeType":"YulIdentifier","src":"10450:6:44"}],"functionName":{"name":"add","nativeSrc":"10435:3:44","nodeType":"YulIdentifier","src":"10435:3:44"},"nativeSrc":"10435:22:44","nodeType":"YulFunctionCall","src":"10435:22:44"},{"name":"dataEnd","nativeSrc":"10459:7:44","nodeType":"YulIdentifier","src":"10459:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10414:20:44","nodeType":"YulIdentifier","src":"10414:20:44"},"nativeSrc":"10414:53:44","nodeType":"YulFunctionCall","src":"10414:53:44"},"variableNames":[{"name":"value1","nativeSrc":"10404:6:44","nodeType":"YulIdentifier","src":"10404:6:44"}]}]},{"nativeSrc":"10487:136:44","nodeType":"YulBlock","src":"10487:136:44","statements":[{"nativeSrc":"10502:16:44","nodeType":"YulVariableDeclaration","src":"10502:16:44","value":{"kind":"number","nativeSrc":"10516:2:44","nodeType":"YulLiteral","src":"10516:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"10506:6:44","nodeType":"YulTypedName","src":"10506:6:44","type":""}]},{"nativeSrc":"10532:81:44","nodeType":"YulAssignment","src":"10532:81:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10585:9:44","nodeType":"YulIdentifier","src":"10585:9:44"},{"name":"offset","nativeSrc":"10596:6:44","nodeType":"YulIdentifier","src":"10596:6:44"}],"functionName":{"name":"add","nativeSrc":"10581:3:44","nodeType":"YulIdentifier","src":"10581:3:44"},"nativeSrc":"10581:22:44","nodeType":"YulFunctionCall","src":"10581:22:44"},{"name":"dataEnd","nativeSrc":"10605:7:44","nodeType":"YulIdentifier","src":"10605:7:44"}],"functionName":{"name":"abi_decode_t_contract$_IVerifier_$8474","nativeSrc":"10542:38:44","nodeType":"YulIdentifier","src":"10542:38:44"},"nativeSrc":"10542:71:44","nodeType":"YulFunctionCall","src":"10542:71:44"},"variableNames":[{"name":"value2","nativeSrc":"10532:6:44","nodeType":"YulIdentifier","src":"10532:6:44"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474","nativeSrc":"9975:655:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10047:9:44","nodeType":"YulTypedName","src":"10047:9:44","type":""},{"name":"dataEnd","nativeSrc":"10058:7:44","nodeType":"YulTypedName","src":"10058:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10070:6:44","nodeType":"YulTypedName","src":"10070:6:44","type":""},{"name":"value1","nativeSrc":"10078:6:44","nodeType":"YulTypedName","src":"10078:6:44","type":""},{"name":"value2","nativeSrc":"10086:6:44","nodeType":"YulTypedName","src":"10086:6:44","type":""}],"src":"9975:655:44"},{"body":{"nativeSrc":"10664:152:44","nodeType":"YulBlock","src":"10664:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10681:1:44","nodeType":"YulLiteral","src":"10681:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"10684:77:44","nodeType":"YulLiteral","src":"10684:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10674:6:44","nodeType":"YulIdentifier","src":"10674:6:44"},"nativeSrc":"10674:88:44","nodeType":"YulFunctionCall","src":"10674:88:44"},"nativeSrc":"10674:88:44","nodeType":"YulExpressionStatement","src":"10674:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10778:1:44","nodeType":"YulLiteral","src":"10778:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"10781:4:44","nodeType":"YulLiteral","src":"10781:4:44","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10771:6:44","nodeType":"YulIdentifier","src":"10771:6:44"},"nativeSrc":"10771:15:44","nodeType":"YulFunctionCall","src":"10771:15:44"},"nativeSrc":"10771:15:44","nodeType":"YulExpressionStatement","src":"10771:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10802:1:44","nodeType":"YulLiteral","src":"10802:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"10805:4:44","nodeType":"YulLiteral","src":"10805:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10795:6:44","nodeType":"YulIdentifier","src":"10795:6:44"},"nativeSrc":"10795:15:44","nodeType":"YulFunctionCall","src":"10795:15:44"},"nativeSrc":"10795:15:44","nodeType":"YulExpressionStatement","src":"10795:15:44"}]},"name":"panic_error_0x11","nativeSrc":"10636:180:44","nodeType":"YulFunctionDefinition","src":"10636:180:44"},{"body":{"nativeSrc":"10865:158:44","nodeType":"YulBlock","src":"10865:158:44","statements":[{"nativeSrc":"10875:24:44","nodeType":"YulAssignment","src":"10875:24:44","value":{"arguments":[{"name":"x","nativeSrc":"10897:1:44","nodeType":"YulIdentifier","src":"10897:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"10880:16:44","nodeType":"YulIdentifier","src":"10880:16:44"},"nativeSrc":"10880:19:44","nodeType":"YulFunctionCall","src":"10880:19:44"},"variableNames":[{"name":"x","nativeSrc":"10875:1:44","nodeType":"YulIdentifier","src":"10875:1:44"}]},{"nativeSrc":"10908:24:44","nodeType":"YulAssignment","src":"10908:24:44","value":{"arguments":[{"name":"y","nativeSrc":"10930:1:44","nodeType":"YulIdentifier","src":"10930:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"10913:16:44","nodeType":"YulIdentifier","src":"10913:16:44"},"nativeSrc":"10913:19:44","nodeType":"YulFunctionCall","src":"10913:19:44"},"variableNames":[{"name":"y","nativeSrc":"10908:1:44","nodeType":"YulIdentifier","src":"10908:1:44"}]},{"nativeSrc":"10941:16:44","nodeType":"YulAssignment","src":"10941:16:44","value":{"arguments":[{"name":"x","nativeSrc":"10952:1:44","nodeType":"YulIdentifier","src":"10952:1:44"},{"name":"y","nativeSrc":"10955:1:44","nodeType":"YulIdentifier","src":"10955:1:44"}],"functionName":{"name":"add","nativeSrc":"10948:3:44","nodeType":"YulIdentifier","src":"10948:3:44"},"nativeSrc":"10948:9:44","nodeType":"YulFunctionCall","src":"10948:9:44"},"variableNames":[{"name":"sum","nativeSrc":"10941:3:44","nodeType":"YulIdentifier","src":"10941:3:44"}]},{"body":{"nativeSrc":"10994:22:44","nodeType":"YulBlock","src":"10994:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10996:16:44","nodeType":"YulIdentifier","src":"10996:16:44"},"nativeSrc":"10996:18:44","nodeType":"YulFunctionCall","src":"10996:18:44"},"nativeSrc":"10996:18:44","nodeType":"YulExpressionStatement","src":"10996:18:44"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"10973:3:44","nodeType":"YulIdentifier","src":"10973:3:44"},{"kind":"number","nativeSrc":"10978:14:44","nodeType":"YulLiteral","src":"10978:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10970:2:44","nodeType":"YulIdentifier","src":"10970:2:44"},"nativeSrc":"10970:23:44","nodeType":"YulFunctionCall","src":"10970:23:44"},"nativeSrc":"10967:49:44","nodeType":"YulIf","src":"10967:49:44"}]},"name":"checked_add_t_uint48","nativeSrc":"10822:201:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10852:1:44","nodeType":"YulTypedName","src":"10852:1:44","type":""},{"name":"y","nativeSrc":"10855:1:44","nodeType":"YulTypedName","src":"10855:1:44","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"10861:3:44","nodeType":"YulTypedName","src":"10861:3:44","type":""}],"src":"10822:201:44"},{"body":{"nativeSrc":"11092:80:44","nodeType":"YulBlock","src":"11092:80:44","statements":[{"nativeSrc":"11102:22:44","nodeType":"YulAssignment","src":"11102:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"11117:6:44","nodeType":"YulIdentifier","src":"11117:6:44"}],"functionName":{"name":"mload","nativeSrc":"11111:5:44","nodeType":"YulIdentifier","src":"11111:5:44"},"nativeSrc":"11111:13:44","nodeType":"YulFunctionCall","src":"11111:13:44"},"variableNames":[{"name":"value","nativeSrc":"11102:5:44","nodeType":"YulIdentifier","src":"11102:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11160:5:44","nodeType":"YulIdentifier","src":"11160:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"11133:26:44","nodeType":"YulIdentifier","src":"11133:26:44"},"nativeSrc":"11133:33:44","nodeType":"YulFunctionCall","src":"11133:33:44"},"nativeSrc":"11133:33:44","nodeType":"YulExpressionStatement","src":"11133:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"11029:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11070:6:44","nodeType":"YulTypedName","src":"11070:6:44","type":""},{"name":"end","nativeSrc":"11078:3:44","nodeType":"YulTypedName","src":"11078:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11086:5:44","nodeType":"YulTypedName","src":"11086:5:44","type":""}],"src":"11029:143:44"},{"body":{"nativeSrc":"11255:274:44","nodeType":"YulBlock","src":"11255:274:44","statements":[{"body":{"nativeSrc":"11301:83:44","nodeType":"YulBlock","src":"11301:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11303:77:44","nodeType":"YulIdentifier","src":"11303:77:44"},"nativeSrc":"11303:79:44","nodeType":"YulFunctionCall","src":"11303:79:44"},"nativeSrc":"11303:79:44","nodeType":"YulExpressionStatement","src":"11303:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11276:7:44","nodeType":"YulIdentifier","src":"11276:7:44"},{"name":"headStart","nativeSrc":"11285:9:44","nodeType":"YulIdentifier","src":"11285:9:44"}],"functionName":{"name":"sub","nativeSrc":"11272:3:44","nodeType":"YulIdentifier","src":"11272:3:44"},"nativeSrc":"11272:23:44","nodeType":"YulFunctionCall","src":"11272:23:44"},{"kind":"number","nativeSrc":"11297:2:44","nodeType":"YulLiteral","src":"11297:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11268:3:44","nodeType":"YulIdentifier","src":"11268:3:44"},"nativeSrc":"11268:32:44","nodeType":"YulFunctionCall","src":"11268:32:44"},"nativeSrc":"11265:119:44","nodeType":"YulIf","src":"11265:119:44"},{"nativeSrc":"11394:128:44","nodeType":"YulBlock","src":"11394:128:44","statements":[{"nativeSrc":"11409:15:44","nodeType":"YulVariableDeclaration","src":"11409:15:44","value":{"kind":"number","nativeSrc":"11423:1:44","nodeType":"YulLiteral","src":"11423:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11413:6:44","nodeType":"YulTypedName","src":"11413:6:44","type":""}]},{"nativeSrc":"11438:74:44","nodeType":"YulAssignment","src":"11438:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11484:9:44","nodeType":"YulIdentifier","src":"11484:9:44"},{"name":"offset","nativeSrc":"11495:6:44","nodeType":"YulIdentifier","src":"11495:6:44"}],"functionName":{"name":"add","nativeSrc":"11480:3:44","nodeType":"YulIdentifier","src":"11480:3:44"},"nativeSrc":"11480:22:44","nodeType":"YulFunctionCall","src":"11480:22:44"},{"name":"dataEnd","nativeSrc":"11504:7:44","nodeType":"YulIdentifier","src":"11504:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"11448:31:44","nodeType":"YulIdentifier","src":"11448:31:44"},"nativeSrc":"11448:64:44","nodeType":"YulFunctionCall","src":"11448:64:44"},"variableNames":[{"name":"value0","nativeSrc":"11438:6:44","nodeType":"YulIdentifier","src":"11438:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"11178:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11225:9:44","nodeType":"YulTypedName","src":"11225:9:44","type":""},{"name":"dataEnd","nativeSrc":"11236:7:44","nodeType":"YulTypedName","src":"11236:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11248:6:44","nodeType":"YulTypedName","src":"11248:6:44","type":""}],"src":"11178:351:44"},{"body":{"nativeSrc":"11661:206:44","nodeType":"YulBlock","src":"11661:206:44","statements":[{"nativeSrc":"11671:26:44","nodeType":"YulAssignment","src":"11671:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"11683:9:44","nodeType":"YulIdentifier","src":"11683:9:44"},{"kind":"number","nativeSrc":"11694:2:44","nodeType":"YulLiteral","src":"11694:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11679:3:44","nodeType":"YulIdentifier","src":"11679:3:44"},"nativeSrc":"11679:18:44","nodeType":"YulFunctionCall","src":"11679:18:44"},"variableNames":[{"name":"tail","nativeSrc":"11671:4:44","nodeType":"YulIdentifier","src":"11671:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11751:6:44","nodeType":"YulIdentifier","src":"11751:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"11764:9:44","nodeType":"YulIdentifier","src":"11764:9:44"},{"kind":"number","nativeSrc":"11775:1:44","nodeType":"YulLiteral","src":"11775:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11760:3:44","nodeType":"YulIdentifier","src":"11760:3:44"},"nativeSrc":"11760:17:44","nodeType":"YulFunctionCall","src":"11760:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11707:43:44","nodeType":"YulIdentifier","src":"11707:43:44"},"nativeSrc":"11707:71:44","nodeType":"YulFunctionCall","src":"11707:71:44"},"nativeSrc":"11707:71:44","nodeType":"YulExpressionStatement","src":"11707:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"11832:6:44","nodeType":"YulIdentifier","src":"11832:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"11845:9:44","nodeType":"YulIdentifier","src":"11845:9:44"},{"kind":"number","nativeSrc":"11856:2:44","nodeType":"YulLiteral","src":"11856:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11841:3:44","nodeType":"YulIdentifier","src":"11841:3:44"},"nativeSrc":"11841:18:44","nodeType":"YulFunctionCall","src":"11841:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11788:43:44","nodeType":"YulIdentifier","src":"11788:43:44"},"nativeSrc":"11788:72:44","nodeType":"YulFunctionCall","src":"11788:72:44"},"nativeSrc":"11788:72:44","nodeType":"YulExpressionStatement","src":"11788:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"11535:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11625:9:44","nodeType":"YulTypedName","src":"11625:9:44","type":""},{"name":"value1","nativeSrc":"11637:6:44","nodeType":"YulTypedName","src":"11637:6:44","type":""},{"name":"value0","nativeSrc":"11645:6:44","nodeType":"YulTypedName","src":"11645:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11656:4:44","nodeType":"YulTypedName","src":"11656:4:44","type":""}],"src":"11535:332:44"},{"body":{"nativeSrc":"11927:32:44","nodeType":"YulBlock","src":"11927:32:44","statements":[{"nativeSrc":"11937:16:44","nodeType":"YulAssignment","src":"11937:16:44","value":{"name":"value","nativeSrc":"11948:5:44","nodeType":"YulIdentifier","src":"11948:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"11937:7:44","nodeType":"YulIdentifier","src":"11937:7:44"}]}]},"name":"cleanup_t_rational_48_by_1","nativeSrc":"11873:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11909:5:44","nodeType":"YulTypedName","src":"11909:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11919:7:44","nodeType":"YulTypedName","src":"11919:7:44","type":""}],"src":"11873:86:44"},{"body":{"nativeSrc":"12008:43:44","nodeType":"YulBlock","src":"12008:43:44","statements":[{"nativeSrc":"12018:27:44","nodeType":"YulAssignment","src":"12018:27:44","value":{"arguments":[{"name":"value","nativeSrc":"12033:5:44","nodeType":"YulIdentifier","src":"12033:5:44"},{"kind":"number","nativeSrc":"12040:4:44","nodeType":"YulLiteral","src":"12040:4:44","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"12029:3:44","nodeType":"YulIdentifier","src":"12029:3:44"},"nativeSrc":"12029:16:44","nodeType":"YulFunctionCall","src":"12029:16:44"},"variableNames":[{"name":"cleaned","nativeSrc":"12018:7:44","nodeType":"YulIdentifier","src":"12018:7:44"}]}]},"name":"cleanup_t_uint8","nativeSrc":"11965:86:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11990:5:44","nodeType":"YulTypedName","src":"11990:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12000:7:44","nodeType":"YulTypedName","src":"12000:7:44","type":""}],"src":"11965:86:44"},{"body":{"nativeSrc":"12124:89:44","nodeType":"YulBlock","src":"12124:89:44","statements":[{"nativeSrc":"12134:73:44","nodeType":"YulAssignment","src":"12134:73:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12199:5:44","nodeType":"YulIdentifier","src":"12199:5:44"}],"functionName":{"name":"cleanup_t_rational_48_by_1","nativeSrc":"12172:26:44","nodeType":"YulIdentifier","src":"12172:26:44"},"nativeSrc":"12172:33:44","nodeType":"YulFunctionCall","src":"12172:33:44"}],"functionName":{"name":"identity","nativeSrc":"12163:8:44","nodeType":"YulIdentifier","src":"12163:8:44"},"nativeSrc":"12163:43:44","nodeType":"YulFunctionCall","src":"12163:43:44"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"12147:15:44","nodeType":"YulIdentifier","src":"12147:15:44"},"nativeSrc":"12147:60:44","nodeType":"YulFunctionCall","src":"12147:60:44"},"variableNames":[{"name":"converted","nativeSrc":"12134:9:44","nodeType":"YulIdentifier","src":"12134:9:44"}]}]},"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"12057:156:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12104:5:44","nodeType":"YulTypedName","src":"12104:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12114:9:44","nodeType":"YulTypedName","src":"12114:9:44","type":""}],"src":"12057:156:44"},{"body":{"nativeSrc":"12291:73:44","nodeType":"YulBlock","src":"12291:73:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12308:3:44","nodeType":"YulIdentifier","src":"12308:3:44"},{"arguments":[{"name":"value","nativeSrc":"12351:5:44","nodeType":"YulIdentifier","src":"12351:5:44"}],"functionName":{"name":"convert_t_rational_48_by_1_to_t_uint8","nativeSrc":"12313:37:44","nodeType":"YulIdentifier","src":"12313:37:44"},"nativeSrc":"12313:44:44","nodeType":"YulFunctionCall","src":"12313:44:44"}],"functionName":{"name":"mstore","nativeSrc":"12301:6:44","nodeType":"YulIdentifier","src":"12301:6:44"},"nativeSrc":"12301:57:44","nodeType":"YulFunctionCall","src":"12301:57:44"},"nativeSrc":"12301:57:44","nodeType":"YulExpressionStatement","src":"12301:57:44"}]},"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"12219:145:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12279:5:44","nodeType":"YulTypedName","src":"12279:5:44","type":""},{"name":"pos","nativeSrc":"12286:3:44","nodeType":"YulTypedName","src":"12286:3:44","type":""}],"src":"12219:145:44"},{"body":{"nativeSrc":"12503:213:44","nodeType":"YulBlock","src":"12503:213:44","statements":[{"nativeSrc":"12513:26:44","nodeType":"YulAssignment","src":"12513:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"12525:9:44","nodeType":"YulIdentifier","src":"12525:9:44"},{"kind":"number","nativeSrc":"12536:2:44","nodeType":"YulLiteral","src":"12536:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12521:3:44","nodeType":"YulIdentifier","src":"12521:3:44"},"nativeSrc":"12521:18:44","nodeType":"YulFunctionCall","src":"12521:18:44"},"variableNames":[{"name":"tail","nativeSrc":"12513:4:44","nodeType":"YulIdentifier","src":"12513:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12600:6:44","nodeType":"YulIdentifier","src":"12600:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12613:9:44","nodeType":"YulIdentifier","src":"12613:9:44"},{"kind":"number","nativeSrc":"12624:1:44","nodeType":"YulLiteral","src":"12624:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12609:3:44","nodeType":"YulIdentifier","src":"12609:3:44"},"nativeSrc":"12609:17:44","nodeType":"YulFunctionCall","src":"12609:17:44"}],"functionName":{"name":"abi_encode_t_rational_48_by_1_to_t_uint8_fromStack","nativeSrc":"12549:50:44","nodeType":"YulIdentifier","src":"12549:50:44"},"nativeSrc":"12549:78:44","nodeType":"YulFunctionCall","src":"12549:78:44"},"nativeSrc":"12549:78:44","nodeType":"YulExpressionStatement","src":"12549:78:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12681:6:44","nodeType":"YulIdentifier","src":"12681:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"12694:9:44","nodeType":"YulIdentifier","src":"12694:9:44"},{"kind":"number","nativeSrc":"12705:2:44","nodeType":"YulLiteral","src":"12705:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12690:3:44","nodeType":"YulIdentifier","src":"12690:3:44"},"nativeSrc":"12690:18:44","nodeType":"YulFunctionCall","src":"12690:18:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12637:43:44","nodeType":"YulIdentifier","src":"12637:43:44"},"nativeSrc":"12637:72:44","nodeType":"YulFunctionCall","src":"12637:72:44"},"nativeSrc":"12637:72:44","nodeType":"YulExpressionStatement","src":"12637:72:44"}]},"name":"abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed","nativeSrc":"12370:346:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12467:9:44","nodeType":"YulTypedName","src":"12467:9:44","type":""},{"name":"value1","nativeSrc":"12479:6:44","nodeType":"YulTypedName","src":"12479:6:44","type":""},{"name":"value0","nativeSrc":"12487:6:44","nodeType":"YulTypedName","src":"12487:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12498:4:44","nodeType":"YulTypedName","src":"12498:4:44","type":""}],"src":"12370:346:44"},{"body":{"nativeSrc":"12766:160:44","nodeType":"YulBlock","src":"12766:160:44","statements":[{"nativeSrc":"12776:24:44","nodeType":"YulAssignment","src":"12776:24:44","value":{"arguments":[{"name":"x","nativeSrc":"12798:1:44","nodeType":"YulIdentifier","src":"12798:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"12781:16:44","nodeType":"YulIdentifier","src":"12781:16:44"},"nativeSrc":"12781:19:44","nodeType":"YulFunctionCall","src":"12781:19:44"},"variableNames":[{"name":"x","nativeSrc":"12776:1:44","nodeType":"YulIdentifier","src":"12776:1:44"}]},{"nativeSrc":"12809:24:44","nodeType":"YulAssignment","src":"12809:24:44","value":{"arguments":[{"name":"y","nativeSrc":"12831:1:44","nodeType":"YulIdentifier","src":"12831:1:44"}],"functionName":{"name":"cleanup_t_uint48","nativeSrc":"12814:16:44","nodeType":"YulIdentifier","src":"12814:16:44"},"nativeSrc":"12814:19:44","nodeType":"YulFunctionCall","src":"12814:19:44"},"variableNames":[{"name":"y","nativeSrc":"12809:1:44","nodeType":"YulIdentifier","src":"12809:1:44"}]},{"nativeSrc":"12842:17:44","nodeType":"YulAssignment","src":"12842:17:44","value":{"arguments":[{"name":"x","nativeSrc":"12854:1:44","nodeType":"YulIdentifier","src":"12854:1:44"},{"name":"y","nativeSrc":"12857:1:44","nodeType":"YulIdentifier","src":"12857:1:44"}],"functionName":{"name":"sub","nativeSrc":"12850:3:44","nodeType":"YulIdentifier","src":"12850:3:44"},"nativeSrc":"12850:9:44","nodeType":"YulFunctionCall","src":"12850:9:44"},"variableNames":[{"name":"diff","nativeSrc":"12842:4:44","nodeType":"YulIdentifier","src":"12842:4:44"}]},{"body":{"nativeSrc":"12897:22:44","nodeType":"YulBlock","src":"12897:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12899:16:44","nodeType":"YulIdentifier","src":"12899:16:44"},"nativeSrc":"12899:18:44","nodeType":"YulFunctionCall","src":"12899:18:44"},"nativeSrc":"12899:18:44","nodeType":"YulExpressionStatement","src":"12899:18:44"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"12875:4:44","nodeType":"YulIdentifier","src":"12875:4:44"},{"kind":"number","nativeSrc":"12881:14:44","nodeType":"YulLiteral","src":"12881:14:44","type":"","value":"0xffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12872:2:44","nodeType":"YulIdentifier","src":"12872:2:44"},"nativeSrc":"12872:24:44","nodeType":"YulFunctionCall","src":"12872:24:44"},"nativeSrc":"12869:50:44","nodeType":"YulIf","src":"12869:50:44"}]},"name":"checked_sub_t_uint48","nativeSrc":"12722:204:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12752:1:44","nodeType":"YulTypedName","src":"12752:1:44","type":""},{"name":"y","nativeSrc":"12755:1:44","nodeType":"YulTypedName","src":"12755:1:44","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"12761:4:44","nodeType":"YulTypedName","src":"12761:4:44","type":""}],"src":"12722:204:44"}]},"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 cleanup_t_uint48(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffff)\n    }\n\n    function abi_encode_t_uint48_to_t_uint48_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint48(value))\n    }\n\n    function abi_encode_tuple_t_uint48__to_t_uint48__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\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 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_bytes32t_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_bytes32(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 identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IVerifier_$8474_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IVerifier_$8474_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IVerifier_$8474__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IVerifier_$8474_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\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_address_t_contract$_IVerifier_$8474_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__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_contract$_IVerifier_$8474_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\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 validator_revert_t_uint48(value) {\n        if iszero(eq(value, cleanup_t_uint48(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint48(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint48(value)\n    }\n\n    function abi_decode_tuple_t_uint48(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_uint48(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_ISciRegistry_$8112_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISciRegistry_$8112_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_uint48_t_uint48__to_t_uint48_t_uint48__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\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 cleanup_t_contract$_IVerifier_$8474(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IVerifier_$8474(value) {\n        if iszero(eq(value, cleanup_t_contract$_IVerifier_$8474(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IVerifier_$8474(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IVerifier_$8474(value)\n    }\n\n    function abi_decode_tuple_t_bytes32t_contract$_IVerifier_$8474(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_contract$_IVerifier_$8474(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint48__to_t_address_t_uint48__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_uint48_to_t_uint48_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_decode_tuple_t_addresst_bytes32t_contract$_IVerifier_$8474(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_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_contract$_IVerifier_$8474(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint48(x, y) -> sum {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function cleanup_t_rational_48_by_1(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_rational_48_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(identity(cleanup_t_rational_48_by_1(value)))\n    }\n\n    function abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_48_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_tuple_t_rational_48_by_1_t_uint256__to_t_uint8_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_rational_48_by_1_to_t_uint8_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_sub_t_uint48(x, y) -> diff {\n        x := cleanup_t_uint48(x)\n        y := cleanup_t_uint48(y)\n        diff := sub(x, y)\n\n        if gt(diff, 0xffffffffffff) { panic_error_0x11() }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7147":[{"length":32,"start":2340},{"length":32,"start":4427}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638da5cb5b1161011a578063cc8463c8116100ad578063d547741f1161007c578063d547741f14610581578063d602b9fd1461059d578063dd738e6c146105a7578063e63ab1e9146105c3578063f68e9553146105e1576101fb565b8063cc8463c81461050a578063cefc142914610528578063cf6eefb714610532578063d26cdd2014610551576101fb565b8063a2a6c0eb116100e9578063a2a6c0eb14610484578063a692b9ef146104b4578063a8c00861146104d0578063be8cd266146104ec576101fb565b80638da5cb5b146103f957806391d1485414610417578063a1eda53c14610447578063a217fddf14610466576101fb565b80635b377fa2116101925780637b103999116101615780637b103999146103835780638023597e146103a15780638456cb59146103d157806384ef8ffc146103db576101fb565b80635b377fa2146102fa5780635c975abb1461032d578063634e93da1461034b578063649a5ec714610367576101fb565b80632f2ff15d116101ce5780632f2ff15d1461028857806336568abe146102a45780633f4ba83a146102c05780635a75199a146102ca576101fb565b806301ffc9a714610200578063022d63fb146102305780630aa6220b1461024e578063248a9ca314610258575b600080fd5b61021a60048036038101906102159190611caf565b6105ff565b6040516102279190611cf7565b60405180910390f35b610238610679565b6040516102459190611d33565b60405180910390f35b610256610684565b005b610272600480360381019061026d9190611d84565b61069c565b60405161027f9190611dc0565b60405180910390f35b6102a2600480360381019061029d9190611e39565b6106bb565b005b6102be60048036038101906102b99190611e39565b6106dd565b005b6102c86107f2565b005b6102e460048036038101906102df9190611d84565b610827565b6040516102f19190611ed8565b60405180910390f35b610314600480360381019061030f9190611d84565b610867565b6040516103249493929190611f1b565b60405180910390f35b6103356108d7565b6040516103429190611cf7565b60405180910390f35b61036560048036038101906103609190611f60565b6108ee565b005b610381600480360381019061037c9190611fb9565b610908565b005b61038b610922565b6040516103989190612007565b60405180910390f35b6103bb60048036038101906103b69190611e39565b610946565b6040516103c89190611cf7565b60405180910390f35b6103d9610987565b005b6103e36109bc565b6040516103f09190612022565b60405180910390f35b6104016109e6565b60405161040e9190612022565b60405180910390f35b610431600480360381019061042c9190611e39565b6109f5565b60405161043e9190611cf7565b60405180910390f35b61044f610a5f565b60405161045d92919061203d565b60405180910390f35b61046e610abf565b60405161047b9190611dc0565b60405180910390f35b61049e60048036038101906104999190611d84565b610ac6565b6040516104ab9190612066565b60405180910390f35b6104ce60048036038101906104c991906120bf565b610ae6565b005b6104ea60048036038101906104e591906120ff565b610b02565b005b6104f4610b10565b6040516105019190611dc0565b60405180910390f35b610512610b34565b60405161051f9190611d33565b60405180910390f35b610530610ba2565b005b61053a610c38565b60405161054892919061213f565b60405180910390f35b61056b60048036038101906105669190611d84565b610c7b565b6040516105789190612022565b60405180910390f35b61059b60048036038101906105969190611e39565b610cbb565b005b6105a5610d05565b005b6105c160048036038101906105bc9190612168565b610d1d565b005b6105cb610d36565b6040516105d89190611dc0565b60405180910390f35b6105e9610d5a565b6040516105f69190611dc0565b60405180910390f35b60007f31498786000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610672575061067182610d7e565b5b9050919050565b600062069780905090565b6000801b61069181610df8565b610699610e0c565b50565b6000806000838152602001908152602001600020600101549050919050565b6106c48261069c565b6106cd81610df8565b6106d78383610e19565b50505050565b6000801b8214801561072157506106f26109bc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156107e457600080610731610c38565b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580610777575061077581610ee6565b155b80610788575061078681610efb565b155b156107ca57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016107c19190611d33565b60405180910390fd5b600160146101000a81549065ffffffffffff021916905550505b6107ee8282610f0f565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61081c81610df8565b610824610f8a565b50565b60006004600083815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60046020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154905084565b6000600360009054906101000a900460ff16905090565b6000801b6108fb81610df8565b61090482610fed565b5050565b6000801b61091581610df8565b61091e82611068565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008173ffffffffffffffffffffffffffffffffffffffff1661096884610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6109b181610df8565b6109b96110cf565b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006109f06109bc565b905090565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806002601a9054906101000a900465ffffffffffff169050610a8281610ee6565b8015610a945750610a9281610efb565b155b610aa057600080610ab7565b600260149054906101000a900465ffffffffffff16815b915091509091565b6000801b81565b600060046000838152602001908152602001600020600301549050919050565b3382610af28282611132565b610afc8484611241565b50505050565b610b0c828261135f565b5050565b7f3ae1c506296743d7e3d03c7c7fbc7159c94706bb478d44fe35e75190455a750981565b6000806002601a9054906101000a900465ffffffffffff169050610b5781610ee6565b8015610b685750610b6781610efb565b5b610b86576001601a9054906101000a900465ffffffffffff16610b9c565b600260149054906101000a900465ffffffffffff165b91505090565b6000610bac610c38565b5090508073ffffffffffffffffffffffffffffffffffffffff16610bce6113fb565b73ffffffffffffffffffffffffffffffffffffffff1614610c2d57610bf16113fb565b6040517fc22c8022000000000000000000000000000000000000000000000000000000008152600401610c249190612022565b60405180910390fd5b610c35611403565b50565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160149054906101000a900465ffffffffffff16915091509091565b60006004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000801b8203610cf7576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d0182826114d2565b5050565b6000801b610d1281610df8565b610d1a6114f4565b50565b610d27838361135f565b610d318282611241565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923881565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610df15750610df082611501565b5b9050919050565b610e0981610e046113fb565b61156b565b50565b610e176000806115bc565b565b60008060001b8303610ed457600073ffffffffffffffffffffffffffffffffffffffff16610e456109bc565b73ffffffffffffffffffffffffffffffffffffffff1614610e92576040517f3fc3c27a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b610ede83836116ac565b905092915050565b6000808265ffffffffffff1614159050919050565b6000428265ffffffffffff16109050919050565b610f176113fb565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f7b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f85828261179d565b505050565b610f92611820565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610fd66113fb565b604051610fe39190612022565b60405180910390a1565b6000610ff7610b34565b61100042611860565b61100a91906121ea565b905061101682826118ba565b8173ffffffffffffffffffffffffffffffffffffffff167f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed68260405161105c9190611d33565b60405180910390a25050565b60006110738261196d565b61107c42611860565b61108691906121ea565b905061109282826115bc565b7ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b82826040516110c392919061203d565b60405180910390a15050565b6110d76119cc565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861111b6113fb565b6040516111289190612022565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016111a29190611dc0565b602060405180830381865afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612239565b73ffffffffffffffffffffffffffffffffffffffff161461123d5781816040517f2ebb0ef6000000000000000000000000000000000000000000000000000000008152600401611234929190612266565b60405180910390fd5b5050565b6112496119cc565b60006004600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600301819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc485a79936c258fd12fef44dd3de8d3069f7a6386c10e58329849408c91bbcd2336040516113529190612022565b60405180910390a4505050565b7fedcc084d3dcd65a1f7f23c65c46722faca6953d28e43150a467cf43e5c30923861138981610df8565b6113916119cc565b61139b8284611a0d565b818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffb904ac70ccbe99b850406bf60ada29496703558524d72bcb9e54b76d1040a6360405160405180910390a4505050565b600033905090565b60008061140e610c38565b9150915061141b81610ee6565b158061142d575061142b81610efb565b155b1561146f57806040517f19ca5ebb0000000000000000000000000000000000000000000000000000000081526004016114669190611d33565b60405180910390fd5b6114836000801b61147e6109bc565b61179d565b506114916000801b83610e19565b50600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160146101000a81549065ffffffffffff02191690555050565b6114db8261069c565b6114e481610df8565b6114ee838361179d565b50505050565b6114ff6000806118ba565b565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61157582826109f5565b6115b85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016115af929190612266565b60405180910390fd5b5050565b60006002601a9054906101000a900465ffffffffffff1690506115de81610ee6565b1561165d576115ec81610efb565b1561162f57600260149054906101000a900465ffffffffffff166001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555061165c565b7f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec560405160405180910390a15b5b82600260146101000a81548165ffffffffffff021916908365ffffffffffff160217905550816002601a6101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b60006116b883836109f5565b61179257600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061172f6113fb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611797565b600090505b92915050565b60008060001b831480156117e357506117b46109bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180e57600260006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b6118188383611b23565b905092915050565b6118286108d7565b61185e576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600065ffffffffffff80168211156118b2576030826040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526004016118a99291906122d7565b60405180910390fd5b819050919050565b60006118c4610c38565b91505082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061193681610ee6565b15611968577f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510960405160405180910390a15b505050565b600080611978610b34565b90508065ffffffffffff168365ffffffffffff16116119a257828161199d9190612300565b6119c4565b6119c38365ffffffffffff166119b6610679565b65ffffffffffff16611c15565b5b915050919050565b6119d46108d7565b15611a0b576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b60006004600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260046000858152602001908152602001600020600201819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16847fc4556710b10078aae76dbdf4ad5ea256f74909069bd8af417c5c2aeac18eb28833604051611b169190612022565b60405180910390a4505050565b6000611b2f83836109f5565b15611c0a57600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba76113fb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611c0f565b600090505b92915050565b6000611c248284108484611c2c565b905092915050565b6000611c3784611c46565b82841802821890509392505050565b60008115159050919050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c8c81611c57565b8114611c9757600080fd5b50565b600081359050611ca981611c83565b92915050565b600060208284031215611cc557611cc4611c52565b5b6000611cd384828501611c9a565b91505092915050565b60008115159050919050565b611cf181611cdc565b82525050565b6000602082019050611d0c6000830184611ce8565b92915050565b600065ffffffffffff82169050919050565b611d2d81611d12565b82525050565b6000602082019050611d486000830184611d24565b92915050565b6000819050919050565b611d6181611d4e565b8114611d6c57600080fd5b50565b600081359050611d7e81611d58565b92915050565b600060208284031215611d9a57611d99611c52565b5b6000611da884828501611d6f565b91505092915050565b611dba81611d4e565b82525050565b6000602082019050611dd56000830184611db1565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e0682611ddb565b9050919050565b611e1681611dfb565b8114611e2157600080fd5b50565b600081359050611e3381611e0d565b92915050565b60008060408385031215611e5057611e4f611c52565b5b6000611e5e85828601611d6f565b9250506020611e6f85828601611e24565b9150509250929050565b6000819050919050565b6000611e9e611e99611e9484611ddb565b611e79565b611ddb565b9050919050565b6000611eb082611e83565b9050919050565b6000611ec282611ea5565b9050919050565b611ed281611eb7565b82525050565b6000602082019050611eed6000830184611ec9565b92915050565b611efc81611dfb565b82525050565b6000819050919050565b611f1581611f02565b82525050565b6000608082019050611f306000830187611ef3565b611f3d6020830186611ec9565b611f4a6040830185611f0c565b611f576060830184611f0c565b95945050505050565b600060208284031215611f7657611f75611c52565b5b6000611f8484828501611e24565b91505092915050565b611f9681611d12565b8114611fa157600080fd5b50565b600081359050611fb381611f8d565b92915050565b600060208284031215611fcf57611fce611c52565b5b6000611fdd84828501611fa4565b91505092915050565b6000611ff182611ea5565b9050919050565b61200181611fe6565b82525050565b600060208201905061201c6000830184611ff8565b92915050565b60006020820190506120376000830184611ef3565b92915050565b60006040820190506120526000830185611d24565b61205f6020830184611d24565b9392505050565b600060208201905061207b6000830184611f0c565b92915050565b600061208c82611dfb565b9050919050565b61209c81612081565b81146120a757600080fd5b50565b6000813590506120b981612093565b92915050565b600080604083850312156120d6576120d5611c52565b5b60006120e485828601611d6f565b92505060206120f5858286016120aa565b9150509250929050565b6000806040838503121561211657612115611c52565b5b600061212485828601611e24565b925050602061213585828601611d6f565b9150509250929050565b60006040820190506121546000830185611ef3565b6121616020830184611d24565b9392505050565b60008060006060848603121561218157612180611c52565b5b600061218f86828701611e24565b93505060206121a086828701611d6f565b92505060406121b1868287016120aa565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121f582611d12565b915061220083611d12565b9250828201905065ffffffffffff81111561221e5761221d6121bb565b5b92915050565b60008151905061223381611e0d565b92915050565b60006020828403121561224f5761224e611c52565b5b600061225d84828501612224565b91505092915050565b600060408201905061227b6000830185611ef3565b6122886020830184611db1565b9392505050565b6000819050919050565b600060ff82169050919050565b60006122c16122bc6122b78461228f565b611e79565b612299565b9050919050565b6122d1816122a6565b82525050565b60006040820190506122ec60008301856122c8565b6122f96020830184611f0c565b9392505050565b600061230b82611d12565b915061231683611d12565b9250828203905065ffffffffffff811115612334576123336121bb565b5b9291505056fea26469706673582212200c94f0c7e9d9553a80ec23e7f0c094e2e5331fc1d14a822d7cb245195034ad3164736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xCC8463C8 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x581 JUMPI DUP1 PUSH4 0xD602B9FD EQ PUSH2 0x59D JUMPI DUP1 PUSH4 0xDD738E6C EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xE63AB1E9 EQ PUSH2 0x5C3 JUMPI DUP1 PUSH4 0xF68E9553 EQ PUSH2 0x5E1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xCC8463C8 EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0xCEFC1429 EQ PUSH2 0x528 JUMPI DUP1 PUSH4 0xCF6EEFB7 EQ PUSH2 0x532 JUMPI DUP1 PUSH4 0xD26CDD20 EQ PUSH2 0x551 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA2A6C0EB GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA2A6C0EB EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0xA692B9EF EQ PUSH2 0x4B4 JUMPI DUP1 PUSH4 0xA8C00861 EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0xBE8CD266 EQ PUSH2 0x4EC JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3F9 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xA1EDA53C EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x466 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x7B103999 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0x8023597E EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x3D1 JUMPI DUP1 PUSH4 0x84EF8FFC EQ PUSH2 0x3DB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x5B377FA2 EQ PUSH2 0x2FA JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0x634E93DA EQ PUSH2 0x34B JUMPI DUP1 PUSH4 0x649A5EC7 EQ PUSH2 0x367 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2A4 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0x5A75199A EQ PUSH2 0x2CA JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x22D63FB EQ PUSH2 0x230 JUMPI DUP1 PUSH4 0xAA6220B EQ PUSH2 0x24E JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x258 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1CAF JUMP JUMPDEST PUSH2 0x5FF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x227 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x238 PUSH2 0x679 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x245 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x256 PUSH2 0x684 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x272 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26D SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x69C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x6DD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH2 0x7F2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DF SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F1 SWAP2 SWAP1 PUSH2 0x1ED8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x314 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0x867 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x335 PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x342 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x365 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x1F60 JUMP JUMPDEST PUSH2 0x8EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x381 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37C SWAP2 SWAP1 PUSH2 0x1FB9 JUMP JUMPDEST PUSH2 0x908 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x38B PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x2007 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B6 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x946 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C8 SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D9 PUSH2 0x987 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3E3 PUSH2 0x9BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3F0 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x401 PUSH2 0x9E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40E SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x44F PUSH2 0xA5F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45D SWAP3 SWAP2 SWAP1 PUSH2 0x203D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x46E PUSH2 0xABF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x49E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4AB SWAP2 SWAP1 PUSH2 0x2066 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C9 SWAP2 SWAP1 PUSH2 0x20BF JUMP JUMPDEST PUSH2 0xAE6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4EA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4E5 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4F4 PUSH2 0xB10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x501 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x512 PUSH2 0xB34 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x530 PUSH2 0xBA2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x53A PUSH2 0xC38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x548 SWAP3 SWAP2 SWAP1 PUSH2 0x213F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1D84 JUMP JUMPDEST PUSH2 0xC7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x59B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x1E39 JUMP JUMPDEST PUSH2 0xCBB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5A5 PUSH2 0xD05 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5BC SWAP2 SWAP1 PUSH2 0x2168 JUMP JUMPDEST PUSH2 0xD1D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x5CB PUSH2 0xD36 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5D8 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x5E9 PUSH2 0xD5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5F6 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x3149878600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x672 JUMPI POP PUSH2 0x671 DUP3 PUSH2 0xD7E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x69780 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x691 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x699 PUSH2 0xE0C JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6C4 DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x6CD DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x6D7 DUP4 DUP4 PUSH2 0xE19 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 EQ DUP1 ISZERO PUSH2 0x721 JUMPI POP PUSH2 0x6F2 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 PUSH2 0x731 PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 PUSH2 0x777 JUMPI POP PUSH2 0x775 DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO JUMPDEST DUP1 PUSH2 0x788 JUMPI POP PUSH2 0x786 DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x7CA JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C1 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMPDEST PUSH2 0x7EE DUP3 DUP3 PUSH2 0xF0F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x81C DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x824 PUSH2 0xF8A JUMP JUMPDEST 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 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x8FB DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x904 DUP3 PUSH2 0xFED JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x915 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x91E DUP3 PUSH2 0x1068 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x968 DUP5 PUSH2 0xC7B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A PUSH2 0x9B1 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0x10CF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9F0 PUSH2 0x9BC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xA82 DUP2 PUSH2 0xEE6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xA94 JUMPI POP PUSH2 0xA92 DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST PUSH2 0xAA0 JUMPI PUSH1 0x0 DUP1 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND DUP2 JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST CALLER DUP3 PUSH2 0xAF2 DUP3 DUP3 PUSH2 0x1132 JUMP JUMPDEST PUSH2 0xAFC DUP5 DUP5 PUSH2 0x1241 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xB0C DUP3 DUP3 PUSH2 0x135F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0x3AE1C506296743D7E3D03C7C7FBC7159C94706BB478D44FE35E75190455A7509 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0xB57 DUP2 PUSH2 0xEE6 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB68 JUMPI POP PUSH2 0xB67 DUP2 PUSH2 0xEFB JUMP JUMPDEST JUMPDEST PUSH2 0xB86 JUMPI PUSH1 0x1 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBAC PUSH2 0xC38 JUMP JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xBCE PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC2D JUMPI PUSH2 0xBF1 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xC22C802200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC24 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC35 PUSH2 0x1403 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP2 POP SWAP2 POP SWAP1 SWAP2 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 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP3 SUB PUSH2 0xCF7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xD01 DUP3 DUP3 PUSH2 0x14D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0xD12 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0xD1A PUSH2 0x14F4 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xD27 DUP4 DUP4 PUSH2 0x135F JUMP JUMPDEST PUSH2 0xD31 DUP3 DUP3 PUSH2 0x1241 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x65D7A28E3265B37A6474929F336521B332C1681B933F6CB9F3376673440D862A DUP2 JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDF1 JUMPI POP PUSH2 0xDF0 DUP3 PUSH2 0x1501 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE09 DUP2 PUSH2 0xE04 PUSH2 0x13FB JUMP JUMPDEST PUSH2 0x156B JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE17 PUSH1 0x0 DUP1 PUSH2 0x15BC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 SUB PUSH2 0xED4 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE45 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3FC3C27A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH2 0xEDE DUP4 DUP4 PUSH2 0x16AC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH6 0xFFFFFFFFFFFF AND EQ ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 TIMESTAMP DUP3 PUSH6 0xFFFFFFFFFFFF AND LT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF17 PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF7B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xF85 DUP3 DUP3 PUSH2 0x179D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xF92 PUSH2 0x1820 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA PUSH2 0xFD6 PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFE3 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFF7 PUSH2 0xB34 JUMP JUMPDEST PUSH2 0x1000 TIMESTAMP PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x100A SWAP2 SWAP1 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1016 DUP3 DUP3 PUSH2 0x18BA JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x3377DC44241E779DD06AFAB5B788A35CA5F3B778836E2990BDB26A2A4B2E5ED6 DUP3 PUSH1 0x40 MLOAD PUSH2 0x105C SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1073 DUP3 PUSH2 0x196D JUMP JUMPDEST PUSH2 0x107C TIMESTAMP PUSH2 0x1860 JUMP JUMPDEST PUSH2 0x1086 SWAP2 SWAP1 PUSH2 0x21EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1092 DUP3 DUP3 PUSH2 0x15BC JUMP JUMPDEST PUSH32 0xF1038C18CF84A56E432FDBFAF746924B7EA511DFE03A6506A0CEBA4888788D9B DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x10C3 SWAP3 SWAP2 SWAP1 PUSH2 0x203D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x10D7 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x111B PUSH2 0x13FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1128 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A2 SWAP2 SWAP1 PUSH2 0x1DC0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11E3 SWAP2 SWAP1 PUSH2 0x2239 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x123D JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1234 SWAP3 SWAP2 SWAP1 PUSH2 0x2266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1249 PUSH2 0x19CC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC485A79936C258FD12FEF44DD3DE8D3069F7A6386C10E58329849408C91BBCD2 CALLER PUSH1 0x40 MLOAD PUSH2 0x1352 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH32 0xEDCC084D3DCD65A1F7F23C65C46722FACA6953D28E43150A467CF43E5C309238 PUSH2 0x1389 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x1391 PUSH2 0x19CC JUMP JUMPDEST PUSH2 0x139B DUP3 DUP5 PUSH2 0x1A0D JUMP JUMPDEST DUP2 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFB904AC70CCBE99B850406BF60ADA29496703558524D72BCB9E54B76D1040A63 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140E PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x141B DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO DUP1 PUSH2 0x142D JUMPI POP PUSH2 0x142B DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x146F JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x19CA5EBB00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1466 SWAP2 SWAP1 PUSH2 0x1D33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1483 PUSH1 0x0 DUP1 SHL PUSH2 0x147E PUSH2 0x9BC JUMP JUMPDEST PUSH2 0x179D JUMP JUMPDEST POP PUSH2 0x1491 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0xE19 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x14DB DUP3 PUSH2 0x69C JUMP JUMPDEST PUSH2 0x14E4 DUP2 PUSH2 0xDF8 JUMP JUMPDEST PUSH2 0x14EE DUP4 DUP4 PUSH2 0x179D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x14FF PUSH1 0x0 DUP1 PUSH2 0x18BA JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1575 DUP3 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x15B8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15AF SWAP3 SWAP2 SWAP1 PUSH2 0x2266 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x1A SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x15DE DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO PUSH2 0x165D JUMPI PUSH2 0x15EC DUP2 PUSH2 0xEFB JUMP JUMPDEST ISZERO PUSH2 0x162F JUMPI PUSH1 0x2 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH6 0xFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x165C JUMP JUMPDEST PUSH32 0x2B1FA2EDAFE6F7B9E97C1A9E0C3660E645BEB2DCAA2D45BDBF9BEAF5472E1EC5 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMPDEST DUP3 PUSH1 0x2 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x2 PUSH1 0x1A PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B8 DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST PUSH2 0x1792 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x172F PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1797 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SHL DUP4 EQ DUP1 ISZERO PUSH2 0x17E3 JUMPI POP PUSH2 0x17B4 PUSH2 0x9BC JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x180E JUMPI PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE JUMPDEST PUSH2 0x1818 DUP4 DUP4 PUSH2 0x1B23 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1828 PUSH2 0x8D7 JUMP JUMPDEST PUSH2 0x185E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8DFC202B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP1 AND DUP3 GT ISZERO PUSH2 0x18B2 JUMPI PUSH1 0x30 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DFCC65000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x18A9 SWAP3 SWAP2 SWAP1 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18C4 PUSH2 0xC38 JUMP JUMPDEST SWAP2 POP POP DUP3 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH6 0xFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH6 0xFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x1936 DUP2 PUSH2 0xEE6 JUMP JUMPDEST ISZERO PUSH2 0x1968 JUMPI PUSH32 0x8886EBFC4259ABDBC16601DD8FB5678E54878F47B3C34836CFC51154A9605109 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1978 PUSH2 0xB34 JUMP JUMPDEST SWAP1 POP DUP1 PUSH6 0xFFFFFFFFFFFF AND DUP4 PUSH6 0xFFFFFFFFFFFF AND GT PUSH2 0x19A2 JUMPI DUP3 DUP2 PUSH2 0x199D SWAP2 SWAP1 PUSH2 0x2300 JUMP JUMPDEST PUSH2 0x19C4 JUMP JUMPDEST PUSH2 0x19C3 DUP4 PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x19B6 PUSH2 0x679 JUMP JUMPDEST PUSH6 0xFFFFFFFFFFFF AND PUSH2 0x1C15 JUMP JUMPDEST JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19D4 PUSH2 0x8D7 JUMP JUMPDEST ISZERO PUSH2 0x1A0B JUMPI PUSH1 0x40 MLOAD PUSH32 0xD93C066500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x4 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xC4556710B10078AAE76DBDF4AD5EA256F74909069BD8AF417C5C2AEAC18EB288 CALLER PUSH1 0x40 MLOAD PUSH2 0x1B16 SWAP2 SWAP1 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B2F DUP4 DUP4 PUSH2 0x9F5 JUMP JUMPDEST ISZERO PUSH2 0x1C0A JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD 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 PUSH2 0x1BA7 PUSH2 0x13FB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x1C0F JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C24 DUP3 DUP5 LT DUP5 DUP5 PUSH2 0x1C2C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C37 DUP5 PUSH2 0x1C46 JUMP JUMPDEST DUP3 DUP5 XOR MUL DUP3 XOR SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C8C DUP2 PUSH2 0x1C57 JUMP JUMPDEST DUP2 EQ PUSH2 0x1C97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CA9 DUP2 PUSH2 0x1C83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CC5 JUMPI PUSH2 0x1CC4 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CD3 DUP5 DUP3 DUP6 ADD PUSH2 0x1C9A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CF1 DUP2 PUSH2 0x1CDC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D0C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1CE8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH6 0xFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2D DUP2 PUSH2 0x1D12 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D48 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D61 DUP2 PUSH2 0x1D4E JUMP JUMPDEST DUP2 EQ PUSH2 0x1D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D7E DUP2 PUSH2 0x1D58 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D9A JUMPI PUSH2 0x1D99 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1DA8 DUP5 DUP3 DUP6 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1DBA DUP2 PUSH2 0x1D4E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DD5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DB1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E06 DUP3 PUSH2 0x1DDB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E16 DUP2 PUSH2 0x1DFB JUMP JUMPDEST DUP2 EQ PUSH2 0x1E21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E33 DUP2 PUSH2 0x1E0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E50 JUMPI PUSH2 0x1E4F PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E5E DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1E6F DUP6 DUP3 DUP7 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E9E PUSH2 0x1E99 PUSH2 0x1E94 DUP5 PUSH2 0x1DDB JUMP JUMPDEST PUSH2 0x1E79 JUMP JUMPDEST PUSH2 0x1DDB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EB0 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC2 DUP3 PUSH2 0x1EA5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1ED2 DUP2 PUSH2 0x1EB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1EED PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EC9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EFC DUP2 PUSH2 0x1DFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F15 DUP2 PUSH2 0x1F02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1F30 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x1F3D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EC9 JUMP JUMPDEST PUSH2 0x1F4A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1F0C JUMP JUMPDEST PUSH2 0x1F57 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F76 JUMPI PUSH2 0x1F75 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F84 DUP5 DUP3 DUP6 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1F96 DUP2 PUSH2 0x1D12 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FB3 DUP2 PUSH2 0x1F8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FCF JUMPI PUSH2 0x1FCE PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1FDD DUP5 DUP3 DUP6 ADD PUSH2 0x1FA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FF1 DUP3 PUSH2 0x1EA5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2001 DUP2 PUSH2 0x1FE6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x201C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2037 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2052 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1D24 JUMP JUMPDEST PUSH2 0x205F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x207B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x208C DUP3 PUSH2 0x1DFB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x209C DUP2 PUSH2 0x2081 JUMP JUMPDEST DUP2 EQ PUSH2 0x20A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20B9 DUP2 PUSH2 0x2093 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x20D6 JUMPI PUSH2 0x20D5 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x20E4 DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x20F5 DUP6 DUP3 DUP7 ADD PUSH2 0x20AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2116 JUMPI PUSH2 0x2115 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2124 DUP6 DUP3 DUP7 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2135 DUP6 DUP3 DUP7 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2154 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x2161 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D24 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2181 JUMPI PUSH2 0x2180 PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x218F DUP7 DUP3 DUP8 ADD PUSH2 0x1E24 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x21A0 DUP7 DUP3 DUP8 ADD PUSH2 0x1D6F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x21B1 DUP7 DUP3 DUP8 ADD PUSH2 0x20AA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x21F5 DUP3 PUSH2 0x1D12 JUMP JUMPDEST SWAP2 POP PUSH2 0x2200 DUP4 PUSH2 0x1D12 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x221E JUMPI PUSH2 0x221D PUSH2 0x21BB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2233 DUP2 PUSH2 0x1E0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x224F JUMPI PUSH2 0x224E PUSH2 0x1C52 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x225D DUP5 DUP3 DUP6 ADD PUSH2 0x2224 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x227B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF3 JUMP JUMPDEST PUSH2 0x2288 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DB1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22C1 PUSH2 0x22BC PUSH2 0x22B7 DUP5 PUSH2 0x228F JUMP JUMPDEST PUSH2 0x1E79 JUMP JUMPDEST PUSH2 0x2299 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22D1 DUP2 PUSH2 0x22A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x22EC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x22C8 JUMP JUMPDEST PUSH2 0x22F9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1F0C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x230B DUP3 PUSH2 0x1D12 JUMP JUMPDEST SWAP2 POP PUSH2 0x2316 DUP4 PUSH2 0x1D12 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH6 0xFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2334 JUMPI PUSH2 0x2333 PUSH2 0x21BB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC SWAP5 CREATE 0xC7 0xE9 0xD9 SSTORE GASPRICE DUP1 0xEC 0x23 0xE7 CREATE 0xC0 SWAP5 0xE2 0xE5 CALLER 0x1F 0xC1 0xD1 BLOBBASEFEE DUP3 0x2D PUSH29 0xB245195034AD3164736F6C634300081C00330000000000000000000000 ","sourceMap":"531:5894:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:219:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7766:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:126;;;:::i;:::-;;3810:120:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4363:137:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4515:566:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3037:77:41;;;:::i;:::-;;3686:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1566:68;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;1850:84:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8068:150:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3182:186:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2876:73;;;:::i;:::-;;6707:106:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2942:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:6;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7432:261:9;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2187:49:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3911:161:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3434:183;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2365:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1170:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7130:229:9;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9146:344;;;:::i;:::-;;6886:171;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4566:148:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3563:267:9;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8706:128;;;:::i;:::-;;2565:225:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1426:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1305:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2667:219:9;2752:4;2790:49;2775:64;;;:11;:64;;;;:104;;;;2843:36;2867:11;2843:23;:36::i;:::-;2775:104;2768:111;;2667:219;;;:::o;7766:108::-;7836:6;7861;7854:13;;7766:108;:::o;10927:126::-;2232:4:6;10988:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;11018:28:9::1;:26;:28::i;:::-;10927:126:::0;:::o;3810:120:6:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4363:137:41:-;4438:18;4451:4;4438:12;:18::i;:::-;2464:16:6;2475:4;2464:10;:16::i;:::-;4468:25:41::1;4479:4;4485:7;4468:10;:25::i;:::-;;4363:137:::0;;;:::o;4515:566:9:-;2232:4:6;4645:18:9;;4637:4;:26;:55;;;;;4678:14;:12;:14::i;:::-;4667:25;;:7;:25;;;4637:55;4633:399;;;4709:23;4734:15;4753:21;:19;:21::i;:::-;4708:66;;;;4819:1;4792:29;;:15;:29;;;;:58;;;;4826:24;4841:8;4826:14;:24::i;:::-;4825:25;4792:58;:91;;;;4855:28;4874:8;4855:18;:28::i;:::-;4854:29;4792:91;4788:185;;;4949:8;4910:48;;;;;;;;;;;:::i;:::-;;;;;;;;4788:185;4993:28;;4986:35;;;;;;;;;;;4694:338;;4633:399;5041:33;5060:4;5066:7;5041:18;:33::i;:::-;4515:566;;:::o;3037:77:41:-;1464:24;2464:16:6;2475:4;2464:10;:16::i;:::-;3097:10:41::1;:8;:10::i;:::-;3037:77:::0;:::o;3686:149::-;3761:9;3789:18;:30;3808:10;3789:30;;;;;;;;;;;:39;;;;;;;;;;;;3782:46;;3686:149;;;:::o;1566:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1850:84:23:-;1897:4;1920:7;;;;;;;;;;;1913:14;;1850:84;:::o;8068:150:9:-;2232:4:6;8145:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8175:36:9::1;8202:8;8175:26;:36::i;:::-;8068:150:::0;;:::o;10296:145::-;2232:4:6;10370:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;10400:34:9::1;10425:8;10400:24;:34::i;:::-;10296:145:::0;;:::o;349:38:29:-;;;:::o;3182:186:41:-;3304:4;3354:7;3327:34;;:23;3339:10;3327:11;:23::i;:::-;:34;;;3320:41;;3182:186;;;;:::o;2876:73::-;1464:24;2464:16:6;2475:4;2464:10;:16::i;:::-;2934:8:41::1;:6;:8::i;:::-;2876:73:::0;:::o;6707:106:9:-;6760:7;6786:20;;;;;;;;;;;6779:27;;6707:106;:::o;2942:93::-;2988:7;3014:14;:12;:14::i;:::-;3007:21;;2942:93;:::o;2854:136:6:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;7432:261:9:-;7497:15;7514;7552:21;;;;;;;;;;;7541:32;;7591:24;7606:8;7591:14;:24::i;:::-;:57;;;;;7620:28;7639:8;7620:18;:28::i;:::-;7619:29;7591:57;7590:96;;7681:1;7684;7590:96;;;7653:13;;;;;;;;;;;7668:8;7590:96;7583:103;;;;7432:261;;:::o;2187:49:6:-;2232:4;2187:49;;;:::o;3911:161:41:-;3993:7;4019:18;:30;4038:10;4019:30;;;;;;;;;;;:46;;;4012:53;;3911:161;;;:::o;3434:183::-;3542:10;3554;872:38:29;890:7;899:10;872:17;:38::i;:::-;3576:34:41::1;3589:10;3601:8;3576:12;:34::i;:::-;3434:183:::0;;;;:::o;2365:119::-;2443:34;2459:5;2466:10;2443:15;:34::i;:::-;2365:119;;:::o;1170:84::-;1219:35;1170:84;:::o;7130:229:9:-;7188:6;7206:15;7224:21;;;;;;;;;;;7206:39;;7263:24;7278:8;7263:14;:24::i;:::-;:56;;;;;7291:28;7310:8;7291:18;:28::i;:::-;7263:56;7262:90;;7339:13;;;;;;;;;;;7262:90;;;7323:13;;;;;;;;;;;7262:90;7255:97;;;7130:229;:::o;9146:344::-;9210:23;9239:21;:19;:21::i;:::-;9209:51;;;9290:15;9274:31;;:12;:10;:12::i;:::-;:31;;;9270:175;;9421:12;:10;:12::i;:::-;9388:46;;;;;;;;;;;:::i;:::-;;;;;;;;9270:175;9454:29;:27;:29::i;:::-;9199:291;9146:344::o;6886:171::-;6946:16;6964:15;6999:20;;;;;;;;;;;7021:28;;;;;;;;;;;6991:59;;;;6886:171;;:::o;4566:148:41:-;4645:7;4671:18;:30;4690:10;4671:30;;;;;;;;;;;:36;;;;;;;;;;;;4664:43;;4566:148;;;:::o;3563:267:9:-;2232:4:6;3691:18:9;;3683:4;:26;3679:104;;3732:40;;;;;;;;;;;;;;3679:104;3792:31;3809:4;3815:7;3792:16;:31::i;:::-;3563:267;;:::o;8706:128::-;2232:4:6;8768:18:9;;2464:16:6;2475:4;2464:10;:16::i;:::-;8798:29:9::1;:27;:29::i;:::-;8706:128:::0;:::o;2565:225:41:-;2705:34;2721:5;2728:10;2705:15;:34::i;:::-;2749;2762:10;2774:8;2749:12;:34::i;:::-;2565:225;;;:::o;1426:62::-;1464:24;1426:62;:::o;1305:68::-;1346:27;1305:68;:::o;2565:202:6:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3199:103::-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;11180:94:9:-;11245:22;11262:1;11265;11245:16;:22::i;:::-;11180:94::o;5509:370::-;5595:4;2232::6;5623:18:9;;5615:4;:26;5611:214;;5687:1;5661:28;;:14;:12;:14::i;:::-;:28;;;5657:114;;5716:40;;;;;;;;;;;;;;5657:114;5807:7;5784:20;;:30;;;;;;;;;;;;;;;;;;5611:214;5841:31;5858:4;5864:7;5841:16;:31::i;:::-;5834:38;;5509:370;;;;:::o;14471:106::-;14534:4;14569:1;14557:8;:13;;;;14550:20;;14471:106;;;:::o;14684:123::-;14751:4;14785:15;14774:8;:26;;;14767:33;;14684:123;;;:::o;5328:245:6:-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2710:117:23:-;1721:16;:14;:16::i;:::-;2778:5:::1;2768:7;;:15;;;;;;;;;;;;;;;;;;2798:22;2807:12;:10;:12::i;:::-;2798:22;;;;;;:::i;:::-;;;;;;;;2710:117::o:0;8345:288:9:-;8426:18;8484:19;:17;:19::i;:::-;8447:34;8465:15;8447:17;:34::i;:::-;:56;;;;:::i;:::-;8426:77;;8513:46;8537:8;8547:11;8513:23;:46::i;:::-;8604:8;8574:52;;;8614:11;8574:52;;;;;;:::i;:::-;;;;;;;;8416:217;8345:288;:::o;10566:::-;10644:18;10702:26;10719:8;10702:16;:26::i;:::-;10665:34;10683:15;10665:17;:34::i;:::-;:63;;;;:::i;:::-;10644:84;;10738:39;10755:8;10765:11;10738:16;:39::i;:::-;10792:55;10825:8;10835:11;10792:55;;;;;;;:::i;:::-;;;;;;;;10634:220;10566:288;:::o;2463:115:23:-;1474:19;:17;:19::i;:::-;2532:4:::1;2522:7;;:14;;;;;;;;;;;;;;;;;;2551:20;2558:12;:10;:12::i;:::-;2551:20;;;;;;:::i;:::-;;;;;;;;2463:115::o:0;1466:218:29:-;1593:7;1557:43;;:8;:20;;;1578:10;1557:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1553:125;;1647:7;1656:10;1623:44;;;;;;;;;;;;:::i;:::-;;;;;;;;1553:125;1466:218;;:::o;5597:371:41:-;1474:19:23;:17;:19::i;:::-;5691:21:41::1;5715:18;:30;5734:10;5715:30;;;;;;;;;;;:39;;;;;;;;;;;;5691:63;;5806:8;5764:18;:30;5783:10;5764:30;;;;;;;;;;;:39;;;:50;;;;;;;;;;;;;;;;;;5873:15;5824:18;:30;5843:10;5824:30;;;;;;;;;;;:46;;:64;;;;5952:8;5903:58;;5939:11;5903:58;;5927:10;5903:58;5915:10;5903:58;;;;;;:::i;:::-;;;;;;;;5681:287;5597:371:::0;;:::o;5091:242::-;1346:27;2464:16:6;2475:4;2464:10;:16::i;:::-;1474:19:23::1;:17;:19::i;:::-;5230:34:41::2;5246:10;5258:5;5230:15;:34::i;:::-;5315:10;5308:5;5279:47;;5296:10;5279:47;;;;;;;;;;;;5091:242:::0;;;:::o;656:96:20:-;709:7;735:10;728:17;;656:96;:::o;9618:474:9:-;9685:16;9703:15;9722:21;:19;:21::i;:::-;9684:59;;;;9758:24;9773:8;9758:14;:24::i;:::-;9757:25;:58;;;;9787:28;9806:8;9787:18;:28::i;:::-;9786:29;9757:58;9753:144;;;9877:8;9838:48;;;;;;;;;;;:::i;:::-;;;;;;;;9753:144;9906:47;2232:4:6;9918:18:9;;9938:14;:12;:14::i;:::-;9906:11;:47::i;:::-;;9963:40;2232:4:6;9974:18:9;;9994:8;9963:10;:40::i;:::-;;10020:20;;10013:27;;;;;;;;;;;10057:28;;10050:35;;;;;;;;;;;9674:418;;9618:474::o;4642:138:6:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;8962:111:9:-;9028:38;9060:1;9064;9028:23;:38::i;:::-;8962:111::o;763:146:25:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;3432:197:6:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;13741:585:9:-;13822:18;13843:21;;;;;;;;;;;13822:42;;13879:27;13894:11;13879:14;:27::i;:::-;13875:365;;;13926:31;13945:11;13926:18;:31::i;:::-;13922:308;;;14040:13;;;;;;;;;;;14024;;:29;;;;;;;;;;;;;;;;;;13922:308;;;14182:33;;;;;;;;;;13922:308;13875:365;14266:8;14250:13;;:24;;;;;;;;;;;;;;;;;;14308:11;14284:21;;:35;;;;;;;;;;;;;;;;;;13812:514;13741:585;;:::o;6179:316:6:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;5946:271:9:-;6033:4;2232::6;6061:18:9;;6053:4;:26;:55;;;;;6094:14;:12;:14::i;:::-;6083:25;;:7;:25;;;6053:55;6049:113;;;6131:20;;6124:27;;;;;;;;;;;6049:113;6178:32;6196:4;6202:7;6178:17;:32::i;:::-;6171:39;;5946:271;;;;:::o;2202:126:23:-;2265:8;:6;:8::i;:::-;2260:62;;2296:15;;;;;;;;;;;;;;2260:62;2202:126::o;14296:213:28:-;14352:6;14382:16;14374:24;;:5;:24;14370:103;;;14452:2;14456:5;14421:41;;;;;;;;;;;;:::i;:::-;;;;;;;;14370:103;14496:5;14482:20;;14296:213;;;:::o;13062:525:9:-;13154:18;13176:21;:19;:21::i;:::-;13151:46;;;13231:8;13208:20;;:31;;;;;;;;;;;;;;;;;;13280:11;13249:28;;:42;;;;;;;;;;;;;;;;;;13403:27;13418:11;13403:14;:27::i;:::-;13399:182;;;13540:30;;;;;;;;;;13399:182;13141:446;13062:525;;:::o;11621:1249::-;11695:6;11713:19;11735;:17;:19::i;:::-;11713:41;;12684:12;12673:23;;:8;:23;;;:190;;12855:8;12840:12;:23;;;;:::i;:::-;12673:190;;;12722:51;12731:8;12722:51;;12741:31;:29;:31::i;:::-;12722:51;;:8;:51::i;:::-;12673:190;12654:209;;;11621:1249;;;:::o;2002:128:23:-;2067:8;:6;:8::i;:::-;2063:61;;;2098:15;;;;;;;;;;;;;;2063:61;2002:128::o;6094:329:41:-;6172:16;6191:18;:30;6210:10;6191:30;;;;;;;;;;;:36;;;;;;;;;;;;6172:55;;6276:5;6237:18;:30;6256:10;6237:30;;;;;;;;;;;:36;;;:44;;;;;;;;;;;;;;;;;;6337:15;6291:18;:30;6310:10;6291:30;;;;;;;;;;;:43;;:61;;;;6410:5;6367:49;;6400:8;6367:49;;6388:10;6367:49;6376:10;6367:49;;;;;;:::i;:::-;;;;;;;;6162:261;6094:329;;:::o;6730:317:6:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3371:111:27:-;3429:7;3455:20;3467:1;3463;:5;3470:1;3473;3455:7;:20::i;:::-;3448:27;;3371:111;;;;:::o;2825:294::-;2903:7;3075:26;3091:9;3075:15;:26::i;:::-;3070:1;3066;:5;3065:36;3060:1;:42;3053:49;;2825:294;;;;;:::o;34795:145:28:-;34842:9;34921:1;34914:9;34907:17;34902:22;;34795:145;;;:::o;88:117:44:-;197:1;194;187: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:97::-;1554:7;1594:14;1587:5;1583:26;1572:37;;1518:97;;;:::o;1621:115::-;1706:23;1723:5;1706:23;:::i;:::-;1701:3;1694:36;1621:115;;:::o;1742:218::-;1833:4;1871:2;1860:9;1856:18;1848:26;;1884:69;1950:1;1939:9;1935:17;1926:6;1884:69;:::i;:::-;1742:218;;;;:::o;1966:77::-;2003:7;2032:5;2021:16;;1966:77;;;:::o;2049:122::-;2122:24;2140:5;2122:24;:::i;:::-;2115:5;2112:35;2102:63;;2161:1;2158;2151:12;2102:63;2049:122;:::o;2177:139::-;2223:5;2261:6;2248:20;2239:29;;2277:33;2304:5;2277:33;:::i;:::-;2177:139;;;;:::o;2322:329::-;2381:6;2430:2;2418:9;2409:7;2405:23;2401:32;2398:119;;;2436:79;;:::i;:::-;2398:119;2556:1;2581:53;2626:7;2617:6;2606:9;2602:22;2581:53;:::i;:::-;2571:63;;2527:117;2322:329;;;;:::o;2657:118::-;2744:24;2762:5;2744:24;:::i;:::-;2739:3;2732:37;2657:118;;:::o;2781:222::-;2874:4;2912:2;2901:9;2897:18;2889:26;;2925:71;2993:1;2982:9;2978:17;2969:6;2925:71;:::i;:::-;2781:222;;;;:::o;3009:126::-;3046:7;3086:42;3079:5;3075:54;3064:65;;3009:126;;;:::o;3141:96::-;3178:7;3207:24;3225:5;3207:24;:::i;:::-;3196:35;;3141:96;;;:::o;3243:122::-;3316:24;3334:5;3316:24;:::i;:::-;3309:5;3306:35;3296:63;;3355:1;3352;3345:12;3296:63;3243:122;:::o;3371:139::-;3417:5;3455:6;3442:20;3433:29;;3471:33;3498:5;3471:33;:::i;:::-;3371:139;;;;:::o;3516:474::-;3584:6;3592;3641:2;3629:9;3620:7;3616:23;3612:32;3609:119;;;3647:79;;:::i;:::-;3609:119;3767:1;3792:53;3837:7;3828:6;3817:9;3813:22;3792:53;:::i;:::-;3782:63;;3738:117;3894:2;3920:53;3965:7;3956:6;3945:9;3941:22;3920:53;:::i;:::-;3910:63;;3865:118;3516:474;;;;;:::o;3996:60::-;4024:3;4045:5;4038:12;;3996:60;;;:::o;4062:142::-;4112:9;4145:53;4163:34;4172:24;4190:5;4172:24;:::i;:::-;4163:34;:::i;:::-;4145:53;:::i;:::-;4132:66;;4062:142;;;:::o;4210:126::-;4260:9;4293:37;4324:5;4293:37;:::i;:::-;4280:50;;4210:126;;;:::o;4342:144::-;4410:9;4443:37;4474:5;4443:37;:::i;:::-;4430:50;;4342:144;;;:::o;4492:167::-;4597:55;4646:5;4597:55;:::i;:::-;4592:3;4585:68;4492:167;;:::o;4665:258::-;4776:4;4814:2;4803:9;4799:18;4791:26;;4827:89;4913:1;4902:9;4898:17;4889:6;4827:89;:::i;:::-;4665:258;;;;:::o;4929:118::-;5016:24;5034:5;5016:24;:::i;:::-;5011:3;5004:37;4929:118;;:::o;5053:77::-;5090:7;5119:5;5108:16;;5053:77;;;:::o;5136:118::-;5223:24;5241:5;5223:24;:::i;:::-;5218:3;5211:37;5136:118;;:::o;5260:589::-;5455:4;5493:3;5482:9;5478:19;5470:27;;5507:71;5575:1;5564:9;5560:17;5551:6;5507:71;:::i;:::-;5588:90;5674:2;5663:9;5659:18;5650:6;5588:90;:::i;:::-;5688:72;5756:2;5745:9;5741:18;5732:6;5688:72;:::i;:::-;5770;5838:2;5827:9;5823:18;5814:6;5770:72;:::i;:::-;5260:589;;;;;;;:::o;5855:329::-;5914:6;5963:2;5951:9;5942:7;5938:23;5934:32;5931:119;;;5969:79;;:::i;:::-;5931:119;6089:1;6114:53;6159:7;6150:6;6139:9;6135:22;6114:53;:::i;:::-;6104:63;;6060:117;5855:329;;;;:::o;6190:120::-;6262:23;6279:5;6262:23;:::i;:::-;6255:5;6252:34;6242:62;;6300:1;6297;6290:12;6242:62;6190:120;:::o;6316:137::-;6361:5;6399:6;6386:20;6377:29;;6415:32;6441:5;6415:32;:::i;:::-;6316:137;;;;:::o;6459:327::-;6517:6;6566:2;6554:9;6545:7;6541:23;6537:32;6534:119;;;6572:79;;:::i;:::-;6534:119;6692:1;6717:52;6761:7;6752:6;6741:9;6737:22;6717:52;:::i;:::-;6707:62;;6663:116;6459:327;;;;:::o;6792:147::-;6863:9;6896:37;6927:5;6896:37;:::i;:::-;6883:50;;6792:147;;;:::o;6945:173::-;7053:58;7105:5;7053:58;:::i;:::-;7048:3;7041:71;6945:173;;:::o;7124:264::-;7238:4;7276:2;7265:9;7261:18;7253:26;;7289:92;7378:1;7367:9;7363:17;7354:6;7289:92;:::i;:::-;7124:264;;;;:::o;7394:222::-;7487:4;7525:2;7514:9;7510:18;7502:26;;7538:71;7606:1;7595:9;7591:17;7582:6;7538:71;:::i;:::-;7394:222;;;;:::o;7622:324::-;7739:4;7777:2;7766:9;7762:18;7754:26;;7790:69;7856:1;7845:9;7841:17;7832:6;7790:69;:::i;:::-;7869:70;7935:2;7924:9;7920:18;7911:6;7869:70;:::i;:::-;7622:324;;;;;:::o;7952:222::-;8045:4;8083:2;8072:9;8068:18;8060:26;;8096:71;8164:1;8153:9;8149:17;8140:6;8096:71;:::i;:::-;7952:222;;;;:::o;8180:114::-;8235:7;8264:24;8282:5;8264:24;:::i;:::-;8253:35;;8180:114;;;:::o;8300:158::-;8391:42;8427:5;8391:42;:::i;:::-;8384:5;8381:53;8371:81;;8448:1;8445;8438:12;8371:81;8300:158;:::o;8464:175::-;8528:5;8566:6;8553:20;8544:29;;8582:51;8627:5;8582:51;:::i;:::-;8464:175;;;;:::o;8645:510::-;8731:6;8739;8788:2;8776:9;8767:7;8763:23;8759:32;8756:119;;;8794:79;;:::i;:::-;8756:119;8914:1;8939:53;8984:7;8975:6;8964:9;8960:22;8939:53;:::i;:::-;8929:63;;8885:117;9041:2;9067:71;9130:7;9121:6;9110:9;9106:22;9067:71;:::i;:::-;9057:81;;9012:136;8645:510;;;;;:::o;9161:474::-;9229:6;9237;9286:2;9274:9;9265:7;9261:23;9257:32;9254:119;;;9292:79;;:::i;:::-;9254:119;9412:1;9437:53;9482:7;9473:6;9462:9;9458:22;9437:53;:::i;:::-;9427:63;;9383:117;9539:2;9565:53;9610:7;9601:6;9590:9;9586:22;9565:53;:::i;:::-;9555:63;;9510:118;9161:474;;;;;:::o;9641:328::-;9760:4;9798:2;9787:9;9783:18;9775:26;;9811:71;9879:1;9868:9;9864:17;9855:6;9811:71;:::i;:::-;9892:70;9958:2;9947:9;9943:18;9934:6;9892:70;:::i;:::-;9641:328;;;;;:::o;9975:655::-;10070:6;10078;10086;10135:2;10123:9;10114:7;10110:23;10106:32;10103:119;;;10141:79;;:::i;:::-;10103:119;10261:1;10286:53;10331:7;10322:6;10311:9;10307:22;10286:53;:::i;:::-;10276:63;;10232:117;10388:2;10414:53;10459:7;10450:6;10439:9;10435:22;10414:53;:::i;:::-;10404:63;;10359:118;10516:2;10542:71;10605:7;10596:6;10585:9;10581:22;10542:71;:::i;:::-;10532:81;;10487:136;9975:655;;;;;:::o;10636:180::-;10684:77;10681:1;10674:88;10781:4;10778:1;10771:15;10805:4;10802:1;10795:15;10822:201;10861:3;10880:19;10897:1;10880:19;:::i;:::-;10875:24;;10913:19;10930:1;10913:19;:::i;:::-;10908:24;;10955:1;10952;10948:9;10941:16;;10978:14;10973:3;10970:23;10967:49;;;10996:18;;:::i;:::-;10967:49;10822:201;;;;:::o;11029:143::-;11086:5;11117:6;11111:13;11102:22;;11133:33;11160:5;11133:33;:::i;:::-;11029:143;;;;:::o;11178:351::-;11248:6;11297:2;11285:9;11276:7;11272:23;11268:32;11265:119;;;11303:79;;:::i;:::-;11265:119;11423:1;11448:64;11504:7;11495:6;11484:9;11480:22;11448:64;:::i;:::-;11438:74;;11394:128;11178:351;;;;:::o;11535:332::-;11656:4;11694:2;11683:9;11679:18;11671:26;;11707:71;11775:1;11764:9;11760:17;11751:6;11707:71;:::i;:::-;11788:72;11856:2;11845:9;11841:18;11832:6;11788:72;:::i;:::-;11535:332;;;;;:::o;11873:86::-;11919:7;11948:5;11937:16;;11873:86;;;:::o;11965:::-;12000:7;12040:4;12033:5;12029:16;12018:27;;11965:86;;;:::o;12057:156::-;12114:9;12147:60;12163:43;12172:33;12199:5;12172:33;:::i;:::-;12163:43;:::i;:::-;12147:60;:::i;:::-;12134:73;;12057:156;;;:::o;12219:145::-;12313:44;12351:5;12313:44;:::i;:::-;12308:3;12301:57;12219:145;;:::o;12370:346::-;12498:4;12536:2;12525:9;12521:18;12513:26;;12549:78;12624:1;12613:9;12609:17;12600:6;12549:78;:::i;:::-;12637:72;12705:2;12694:9;12690:18;12681:6;12637:72;:::i;:::-;12370:346;;;;;:::o;12722:204::-;12761:4;12781:19;12798:1;12781:19;:::i;:::-;12776:24;;12814:19;12831:1;12814:19;:::i;:::-;12809:24;;12857:1;12854;12850:9;12842:17;;12881:14;12875:4;12872:24;12869:50;;;12899:18;;:::i;:::-;12869:50;12722:204;;;;:::o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","PAUSER_ROLE()":"e63ab1e9","REGISTRAR_MANAGER_ROLE()":"be8cd266","REGISTRAR_ROLE()":"f68e9553","acceptDefaultAdminTransfer()":"cefc1429","beginDefaultAdminTransfer(address)":"634e93da","cancelDefaultAdminTransfer()":"d602b9fd","changeDefaultAdminDelay(uint48)":"649a5ec7","defaultAdmin()":"84ef8ffc","defaultAdminDelay()":"cc8463c8","defaultAdminDelayIncreaseWait()":"022d63fb","domainHashToRecord(bytes32)":"5b377fa2","domainOwner(bytes32)":"d26cdd20","domainVerifier(bytes32)":"5a75199a","domainVerifierSetTime(bytes32)":"a2a6c0eb","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isDomainOwner(bytes32,address)":"8023597e","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingDefaultAdmin()":"cf6eefb7","pendingDefaultAdminDelay()":"a1eda53c","registerDomain(address,bytes32)":"a8c00861","registerDomainWithVerifier(address,bytes32,address)":"dd738e6c","registry()":"7b103999","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","rollbackDefaultAdminDelay()":"0aa6220b","setVerifier(bytes32,address)":"a692b9ef","supportsInterface(bytes4)":"01ffc9a7","unpause()":"3f4ba83a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"_initialDelay\",\"type\":\"uint48\"},{\"internalType\":\"address\",\"name\":\"_initialDefaultAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"name\":\"AccessControlEnforcedDefaultAdminDelay\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessControlEnforcedDefaultAdminRules\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"AccessControlInvalidDefaultAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminDelayChangeCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"effectSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminDelayChangeScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"DefaultAdminTransferCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"acceptSchedule\",\"type\":\"uint48\"}],\"name\":\"DefaultAdminTransferScheduled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"registrar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"DomainRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IVerifier\",\"name\":\"newVerifie\",\"type\":\"address\"}],\"name\":\"VerifierSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PAUSER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRAR_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REGISTRAR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"beginDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelDefaultAdminTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"}],\"name\":\"changeDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"defaultAdminDelayIncreaseWait\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"nameHash\",\"type\":\"bytes32\"}],\"name\":\"domainHashToRecord\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ownerSetTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verifierSetTime\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifier\",\"outputs\":[{\"internalType\":\"contract IVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"domainVerifierSetTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isDomainOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingDefaultAdminDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"newDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"schedule\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"registerDomain\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"registerDomainWithVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rollbackDefaultAdminDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"contract IVerifier\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setVerifier\",\"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\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"See {ISciRegistry}.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlEnforcedDefaultAdminDelay(uint48)\":[{\"details\":\"The delay for transferring the default admin delay is enforced and the operation must wait until `schedule`. NOTE: `schedule` can be 0 indicating there's no transfer scheduled.\"}],\"AccessControlEnforcedDefaultAdminRules()\":[{\"details\":\"At least one of the following rules was violated: - The `DEFAULT_ADMIN_ROLE` must only be managed by itself. - The `DEFAULT_ADMIN_ROLE` must only be held by one account at the time. - Any `DEFAULT_ADMIN_ROLE` transfer must be in two delayed steps.\"}],\"AccessControlInvalidDefaultAdmin(address)\":[{\"details\":\"The new default admin is not a valid default admin.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"DefaultAdminDelayChangeCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdminDelay} is reset if its schedule didn't pass.\"},\"DefaultAdminDelayChangeScheduled(uint48,uint48)\":{\"details\":\"Emitted when a {defaultAdminDelay} change is started, setting `newDelay` as the next delay to be applied between default admin transfer after `effectSchedule` has passed.\"},\"DefaultAdminTransferCanceled()\":{\"details\":\"Emitted when a {pendingDefaultAdmin} is reset if it was never accepted, regardless of its schedule.\"},\"DefaultAdminTransferScheduled(address,uint48)\":{\"details\":\"Emitted when a {defaultAdmin} transfer is started, setting `newAdmin` as the next address to become the {defaultAdmin} by calling {acceptDefaultAdminTransfer} only after `acceptSchedule` passes.\"},\"DomainRegistered(address,address,bytes32)\":{\"details\":\"Emitted when a new `domain` with the `domainHash` is registered by the `owner`.\"},\"OwnerSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the owner of a `domainHash` is set.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"VerifierSet(address,bytes32,address,address)\":{\"details\":\"Emitted when the `owner` of the `domainHash` adds a `verifier`. Note: This will also be emitted when the verifier is changed.\"}},\"kind\":\"dev\",\"methods\":{\"acceptDefaultAdminTransfer()\":{\"details\":\"Completes a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. After calling the function: - `DEFAULT_ADMIN_ROLE` should be granted to the caller. - `DEFAULT_ADMIN_ROLE` should be revoked from the previous holder. - {pendingDefaultAdmin} should be reset to zero values. Requirements: - Only can be called by the {pendingDefaultAdmin}'s `newAdmin`. - The {pendingDefaultAdmin}'s `acceptSchedule` should've passed.\"},\"beginDefaultAdminTransfer(address)\":{\"details\":\"Starts a {defaultAdmin} transfer by setting a {pendingDefaultAdmin} scheduled for acceptance after the current timestamp plus a {defaultAdminDelay}. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminRoleChangeStarted event.\"},\"cancelDefaultAdminTransfer()\":{\"details\":\"Cancels a {defaultAdmin} transfer previously started with {beginDefaultAdminTransfer}. A {pendingDefaultAdmin} not yet accepted can also be cancelled with this function. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminTransferCanceled event.\"},\"changeDefaultAdminDelay(uint48)\":{\"details\":\"Initiates a {defaultAdminDelay} update by setting a {pendingDefaultAdminDelay} scheduled for getting into effect after the current timestamp plus a {defaultAdminDelay}. This function guarantees that any call to {beginDefaultAdminTransfer} done between the timestamp this method is called and the {pendingDefaultAdminDelay} effect schedule will use the current {defaultAdminDelay} set before calling. The {pendingDefaultAdminDelay}'s effect schedule is defined in a way that waiting until the schedule and then calling {beginDefaultAdminTransfer} with the new delay will take at least the same as another {defaultAdmin} complete transfer (including acceptance). The schedule is designed for two scenarios: - When the delay is changed for a larger one the schedule is `block.timestamp + newDelay` capped by {defaultAdminDelayIncreaseWait}. - When the delay is changed for a shorter one, the schedule is `block.timestamp + (current delay - new delay)`. A {pendingDefaultAdminDelay} that never got into effect will be canceled in favor of a new scheduled change. Requirements: - Only can be called by the current {defaultAdmin}. Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.\"},\"constructor\":{\"details\":\"Constructor to initialize the Registry contract. Sets the REGISTRAR_MANAGER_ROLE as the admin role of REGISTRAR_ROLE.\",\"params\":{\"_initialDefaultAdmin\":\"The {initialDefaultAdmin}. See AccessControlDefaultAdminRules for more information.\",\"_initialDelay\":\"The {defaultAdminDelay}. See AccessControlDefaultAdminRules for more information.\"}},\"defaultAdmin()\":{\"details\":\"Returns the address of the current `DEFAULT_ADMIN_ROLE` holder.\"},\"defaultAdminDelay()\":{\"details\":\"Returns the delay required to schedule the acceptance of a {defaultAdmin} transfer started. This delay will be added to the current timestamp when calling {beginDefaultAdminTransfer} to set the acceptance schedule. NOTE: If a delay change has been scheduled, it will take effect as soon as the schedule passes, making this function returns the new delay. See {changeDefaultAdminDelay}.\"},\"defaultAdminDelayIncreaseWait()\":{\"details\":\"Maximum time in seconds for an increase to {defaultAdminDelay} (that is scheduled using {changeDefaultAdminDelay}) to take effect. Default to 5 days. When the {defaultAdminDelay} is scheduled to be increased, it goes into effect after the new delay has passed with the purpose of giving enough time for reverting any accidental change (i.e. using milliseconds instead of seconds) that may lock the contract. However, to avoid excessive schedules, the wait is capped by this function and it can be overrode for a custom {defaultAdminDelay} increase scheduling. IMPORTANT: Make sure to add a reasonable amount of time while overriding this value, otherwise, there's a risk of setting a high new delay that goes into effect almost immediately without the possibility of human intervention in the case of an input error (eg. set milliseconds instead of seconds).\"},\"domainOwner(bytes32)\":{\"details\":\"See {ISciRegistry-domainOwner}.\"},\"domainVerifier(bytes32)\":{\"details\":\"See {ISciRegistry-domainVerifier}.\"},\"domainVerifierSetTime(bytes32)\":{\"details\":\"See {ISciRegistry-domainVerifierSetTime}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants a role to an account.\",\"params\":{\"account\":\"The account receiving the role. Note: Overrides the OpenZeppelin function to require the caller to have the admin role for the role being granted.\",\"role\":\"The role to grant.\"}},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isDomainOwner(bytes32,address)\":{\"details\":\"See {ISciRegistry-isDomainOwner}.\"},\"owner()\":{\"details\":\"See {IERC5313-owner}.\"},\"pause()\":{\"details\":\"Pauses registering a domain and setting a verifier.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"pendingDefaultAdmin()\":{\"details\":\"Returns a tuple of a `newAdmin` and an accept schedule. After the `schedule` passes, the `newAdmin` will be able to accept the {defaultAdmin} role by calling {acceptDefaultAdminTransfer}, completing the role transfer. A zero value only in `acceptSchedule` indicates no pending admin transfer. NOTE: A zero address `newAdmin` means that {defaultAdmin} is being renounced.\"},\"pendingDefaultAdminDelay()\":{\"details\":\"Returns a tuple of `newDelay` and an effect schedule. After the `schedule` passes, the `newDelay` will get into effect immediately for every new {defaultAdmin} transfer started with {beginDefaultAdminTransfer}. A zero value only in `effectSchedule` indicates no pending delay change. NOTE: A zero value only for `newDelay` means that the next {defaultAdminDelay} will be zero after the effect schedule.\"},\"registerDomain(address,bytes32)\":{\"details\":\"See {ISciRegistry-registerDomain}.\"},\"registerDomainWithVerifier(address,bytes32,address)\":{\"details\":\"See {ISciRegistry-registerDomainWithVerifier}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"See {AccessControl-renounceRole}. For the `DEFAULT_ADMIN_ROLE`, it only allows renouncing in two steps by first calling {beginDefaultAdminTransfer} to the `address(0)`, so it's required that the {pendingDefaultAdmin} schedule has also passed when calling this function. After its execution, it will not be possible to call `onlyRole(DEFAULT_ADMIN_ROLE)` functions. NOTE: Renouncing `DEFAULT_ADMIN_ROLE` will leave the contract without a {defaultAdmin}, thereby disabling any functionality that is only available for it, and the possibility of reassigning a non-administrated role.\"},\"revokeRole(bytes32,address)\":{\"details\":\"See {AccessControl-revokeRole}. Reverts for `DEFAULT_ADMIN_ROLE`.\"},\"rollbackDefaultAdminDelay()\":{\"details\":\"Cancels a scheduled {defaultAdminDelay} change. Requirements: - Only can be called by the current {defaultAdmin}. May emit a DefaultAdminDelayChangeCanceled event.\"},\"setVerifier(bytes32,address)\":{\"details\":\"See {ISciRegistry-setVerifier}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"unpause()\":{\"details\":\"Unpauses registering a domain and setting a verifier.\"}},\"stateVariables\":{\"domainHashToRecord\":{\"details\":\"Maps the namehash of a domain to a Record.\"}},\"title\":\"Registry\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SciRegistry/SciRegistry.sol\":\"SciRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/access/extensions/AccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0xd5e43578dce2678fbd458e1221dc37b20e983ecce4a314b422704f07d6015c5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ea4d9ae3392dc9db1ef4d7ebef84ce7fa243dc14abb46e68eb2eb60d2cd0e93\",\"dweb:/ipfs/QmRfjyDoLWF74EgmpcGkWZM7Kx1LgHN8dZHBxAnU9vPH46\"]},\"@openzeppelin/contracts/access/extensions/IAccessControlDefaultAdminRules.sol\":{\"keccak256\":\"0x094d9bafd5008e2e3b53e40b0ca75173cec4e2c81cf2572ddbef07d375976580\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://caa28b73830478c39706023a757ce6cc138c396d94300fbcc927998a139f8b7e\",\"dweb:/ipfs/QmYVS9731qEJhuMMsU6vqrkdGxq2pxdXcvmtGTNSntAsAE\"]},\"@openzeppelin/contracts/interfaces/IERC5313.sol\":{\"keccak256\":\"0x22412c268e74cc3cbf550aecc2f7456f6ac40783058e219cfe09f26f4d396621\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b841021f25480424d2359de4869e60e77f790f52e8e85f07aa389543024b559\",\"dweb:/ipfs/QmV7U5ehV5xe3QrbE8ErxfWSSzK1T1dGeizXvYPjWpNDGq\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0xb2e5f50762c27fb4b123e3619c3c02bdcba5e515309382e5bfb6f7d6486510bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a4b83328c98d518a2699c2cbe9e9b055e78aa57fa8639f1b88deb8b3750b5dc\",\"dweb:/ipfs/QmXdcYj5v7zQxXFPULShHkR5p4Wa2zYuupbHnFdV3cHYtc\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0xa7255ab117f153218959a12397fadd772faad8ae921f280117846caac435fff1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://45ee7ac9a777795422a546a62d945913c3f2ff67bdb57367b899e0db65f58962\",\"dweb:/ipfs/QmVz5cJq7qbifkSUcG9bKw6Y5uYny22VJJuVbrfqrjGa81\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/SciRegistry/SciRegistry.sol\":{\"keccak256\":\"0x76c9f504d46c225b63795a18b3d3d40059e1faf4c203182dfa84419f64833a96\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ed042e01c17b1703e2ebe58e9d7ecfbb4f9b6455f1361f6d7bc2261312277dc8\",\"dweb:/ipfs/QmUzgUqn5SLVhdvcYHmGSWVzRbzS9hhbRhbvrRye2ovfrJ\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":1219,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_roles","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)"},{"astId":1741,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_pendingDefaultAdmin","offset":0,"slot":"1","type":"t_address"},{"astId":1743,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_pendingDefaultAdminSchedule","offset":20,"slot":"1","type":"t_uint48"},{"astId":1745,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_currentDelay","offset":26,"slot":"1","type":"t_uint48"},{"astId":1747,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_currentDefaultAdmin","offset":0,"slot":"2","type":"t_address"},{"astId":1749,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_pendingDelay","offset":20,"slot":"2","type":"t_uint48"},{"astId":1751,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_pendingDelaySchedule","offset":26,"slot":"2","type":"t_uint48"},{"astId":3500,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"_paused","offset":0,"slot":"3","type":"t_bool"},{"astId":8165,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"domainHashToRecord","offset":0,"slot":"4","type":"t_mapping(t_bytes32,t_struct(Record)8144_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IVerifier)8474":{"encoding":"inplace","label":"contract IVerifier","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_struct(Record)8144_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct SciRegistry.Record)","numberOfBytes":"32","value":"t_struct(Record)8144_storage"},"t_mapping(t_bytes32,t_struct(RoleData)1214_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)1214_storage"},"t_struct(Record)8144_storage":{"encoding":"inplace","label":"struct SciRegistry.Record","members":[{"astId":8136,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":8139,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"verifier","offset":0,"slot":"1","type":"t_contract(IVerifier)8474"},{"astId":8141,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"ownerSetTime","offset":0,"slot":"2","type":"t_uint256"},{"astId":8143,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"verifierSetTime","offset":0,"slot":"3","type":"t_uint256"}],"numberOfBytes":"128"},"t_struct(RoleData)1214_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","members":[{"astId":1211,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"hasRole","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":1213,"contract":"contracts/SciRegistry/SciRegistry.sol:SciRegistry","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}],"numberOfBytes":"64"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint48":{"encoding":"inplace","label":"uint48","numberOfBytes":"6"}}}}},"contracts/Verifiers/IVerifier.sol":{"IVerifier":{"abi":[{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"isVerified","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isVerified(bytes32,address,uint256)":"046852d0"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"Required interface of a Verifier compliant contract for the SCI Registry.\",\"kind\":\"dev\",\"methods\":{\"isVerified(bytes32,address,uint256)\":{\"details\":\"Verifies if a contract in a specific chain is authorized to interact within a domain.\",\"params\":{\"chainId\":\"The chain where the contract is deployed.\",\"contractAddress\":\"The address of the contract trying to be verified.\",\"domainHash\":\"The domain's namehash.\"},\"returns\":{\"_0\":\"a uint256 representing the time when the contract was verified. If the contract is not verified, it returns 0. Note: The return timestamp is a best effor approach to provide the time when the contract was verified. For verifiers that can't know when the contract was verified they could return when the verifier was deployed.\"}}},\"title\":\"IVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Verifiers/IVerifier.sol\":\"IVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]}},\"version\":1}","storageLayout":{"storage":[],"types":null}}},"contracts/Verifiers/PublicListVerifier.sol":{"PublicListVerifier":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"domainHash","type":"bytes32"}],"name":"AccountIsNotDomainOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"address","name":"msgSender","type":"address"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"address","name":"msgSender","type":"address"}],"name":"AddressRemoved","type":"event"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address[]","name":"contractAddresses","type":"address[]"},{"internalType":"uint256[][]","name":"chainIds","type":"uint256[][]"}],"name":"addAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"isVerified","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract ISciRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address[]","name":"contractAddresses","type":"address[]"},{"internalType":"uint256[][]","name":"chainIds","type":"uint256[][]"}],"name":"removeAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domainHash","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"verifiedContracts","outputs":[{"internalType":"uint256","name":"registerTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_7181":{"entryPoint":null,"id":7181,"parameterSlots":1,"returnSlots":0},"@_8531":{"entryPoint":null,"id":8531,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":188,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":209,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":147,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":115,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":110,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":165,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1199:44","nodeType":"YulBlock","src":"0:1199:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:81:44","nodeType":"YulBlock","src":"379:81:44","statements":[{"nativeSrc":"389:65:44","nodeType":"YulAssignment","src":"389:65:44","value":{"arguments":[{"name":"value","nativeSrc":"404:5:44","nodeType":"YulIdentifier","src":"404:5:44"},{"kind":"number","nativeSrc":"411:42:44","nodeType":"YulLiteral","src":"411:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:44","nodeType":"YulIdentifier","src":"400:3:44"},"nativeSrc":"400:54:44","nodeType":"YulFunctionCall","src":"400:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:126:44"},{"body":{"nativeSrc":"511:51:44","nodeType":"YulBlock","src":"511:51:44","statements":[{"nativeSrc":"521:35:44","nodeType":"YulAssignment","src":"521:35:44","value":{"arguments":[{"name":"value","nativeSrc":"550:5:44","nodeType":"YulIdentifier","src":"550:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:44","nodeType":"YulIdentifier","src":"532:17:44"},"nativeSrc":"532:24:44","nodeType":"YulFunctionCall","src":"532:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:44","nodeType":"YulIdentifier","src":"521:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:44","nodeType":"YulTypedName","src":"493:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:44","nodeType":"YulTypedName","src":"503:7:44","type":""}],"src":"466:96:44"},{"body":{"nativeSrc":"611:79:44","nodeType":"YulBlock","src":"611:79:44","statements":[{"body":{"nativeSrc":"668:16:44","nodeType":"YulBlock","src":"668:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:44","nodeType":"YulLiteral","src":"677:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:44","nodeType":"YulLiteral","src":"680:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:44","nodeType":"YulIdentifier","src":"670:6:44"},"nativeSrc":"670:12:44","nodeType":"YulFunctionCall","src":"670:12:44"},"nativeSrc":"670:12:44","nodeType":"YulExpressionStatement","src":"670:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:44","nodeType":"YulIdentifier","src":"634:5:44"},{"arguments":[{"name":"value","nativeSrc":"659:5:44","nodeType":"YulIdentifier","src":"659:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:44","nodeType":"YulIdentifier","src":"641:17:44"},"nativeSrc":"641:24:44","nodeType":"YulFunctionCall","src":"641:24:44"}],"functionName":{"name":"eq","nativeSrc":"631:2:44","nodeType":"YulIdentifier","src":"631:2:44"},"nativeSrc":"631:35:44","nodeType":"YulFunctionCall","src":"631:35:44"}],"functionName":{"name":"iszero","nativeSrc":"624:6:44","nodeType":"YulIdentifier","src":"624:6:44"},"nativeSrc":"624:43:44","nodeType":"YulFunctionCall","src":"624:43:44"},"nativeSrc":"621:63:44","nodeType":"YulIf","src":"621:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:44","nodeType":"YulTypedName","src":"604:5:44","type":""}],"src":"568:122:44"},{"body":{"nativeSrc":"759:80:44","nodeType":"YulBlock","src":"759:80:44","statements":[{"nativeSrc":"769:22:44","nodeType":"YulAssignment","src":"769:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:44","nodeType":"YulIdentifier","src":"784:6:44"}],"functionName":{"name":"mload","nativeSrc":"778:5:44","nodeType":"YulIdentifier","src":"778:5:44"},"nativeSrc":"778:13:44","nodeType":"YulFunctionCall","src":"778:13:44"},"variableNames":[{"name":"value","nativeSrc":"769:5:44","nodeType":"YulIdentifier","src":"769:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:44","nodeType":"YulIdentifier","src":"827:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:44","nodeType":"YulIdentifier","src":"800:26:44"},"nativeSrc":"800:33:44","nodeType":"YulFunctionCall","src":"800:33:44"},"nativeSrc":"800:33:44","nodeType":"YulExpressionStatement","src":"800:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:44","nodeType":"YulTypedName","src":"737:6:44","type":""},{"name":"end","nativeSrc":"745:3:44","nodeType":"YulTypedName","src":"745:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:44","nodeType":"YulTypedName","src":"753:5:44","type":""}],"src":"696:143:44"},{"body":{"nativeSrc":"922:274:44","nodeType":"YulBlock","src":"922:274:44","statements":[{"body":{"nativeSrc":"968:83:44","nodeType":"YulBlock","src":"968:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"970:77:44","nodeType":"YulIdentifier","src":"970:77:44"},"nativeSrc":"970:79:44","nodeType":"YulFunctionCall","src":"970:79:44"},"nativeSrc":"970:79:44","nodeType":"YulExpressionStatement","src":"970:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"943:7:44","nodeType":"YulIdentifier","src":"943:7:44"},{"name":"headStart","nativeSrc":"952:9:44","nodeType":"YulIdentifier","src":"952:9:44"}],"functionName":{"name":"sub","nativeSrc":"939:3:44","nodeType":"YulIdentifier","src":"939:3:44"},"nativeSrc":"939:23:44","nodeType":"YulFunctionCall","src":"939:23:44"},{"kind":"number","nativeSrc":"964:2:44","nodeType":"YulLiteral","src":"964:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"935:3:44","nodeType":"YulIdentifier","src":"935:3:44"},"nativeSrc":"935:32:44","nodeType":"YulFunctionCall","src":"935:32:44"},"nativeSrc":"932:119:44","nodeType":"YulIf","src":"932:119:44"},{"nativeSrc":"1061:128:44","nodeType":"YulBlock","src":"1061:128:44","statements":[{"nativeSrc":"1076:15:44","nodeType":"YulVariableDeclaration","src":"1076:15:44","value":{"kind":"number","nativeSrc":"1090:1:44","nodeType":"YulLiteral","src":"1090:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1080:6:44","nodeType":"YulTypedName","src":"1080:6:44","type":""}]},{"nativeSrc":"1105:74:44","nodeType":"YulAssignment","src":"1105:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1151:9:44","nodeType":"YulIdentifier","src":"1151:9:44"},{"name":"offset","nativeSrc":"1162:6:44","nodeType":"YulIdentifier","src":"1162:6:44"}],"functionName":{"name":"add","nativeSrc":"1147:3:44","nodeType":"YulIdentifier","src":"1147:3:44"},"nativeSrc":"1147:22:44","nodeType":"YulFunctionCall","src":"1147:22:44"},{"name":"dataEnd","nativeSrc":"1171:7:44","nodeType":"YulIdentifier","src":"1171:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1115:31:44","nodeType":"YulIdentifier","src":"1115:31:44"},"nativeSrc":"1115:64:44","nodeType":"YulFunctionCall","src":"1115:64:44"},"variableNames":[{"name":"value0","nativeSrc":"1105:6:44","nodeType":"YulIdentifier","src":"1105:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"845:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"892:9:44","nodeType":"YulTypedName","src":"892:9:44","type":""},{"name":"dataEnd","nativeSrc":"903:7:44","nodeType":"YulTypedName","src":"903:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"915:6:44","nodeType":"YulTypedName","src":"915:6:44","type":""}],"src":"845:351:44"}]},"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_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b50604051610ddf380380610ddf833981810160405281019061003291906100d1565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050506100fe565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009e82610073565b9050919050565b6100ae81610093565b81146100b957600080fd5b50565b6000815190506100cb816100a5565b92915050565b6000602082840312156100e7576100e661006e565b5b60006100f5848285016100bc565b91505092915050565b608051610cbf6101206000396000818161044501526106740152610cbf6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b6100766004803603810190610071919061083e565b610112565b60405161008391906108a0565b60405180910390f35b6100a660048036038101906100a19190610976565b61022a565b005b6100c260048036038101906100bd919061083e565b610411565b6040516100cf91906108a0565b60405180910390f35b6100e0610443565b6040516100ed9190610a6a565b60405180910390f35b610110600480360381019061010b9190610976565b610467565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b3385610236828261065b565b60005b868690508110156104075760005b85858381811061025a57610259610a85565b5b905060200281019061026c9190610ac3565b90508110156103fb57426000808b815260200190815260200160002060008a8a8681811061029d5761029c610a85565b5b90506020020160208101906102b29190610b26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030157610300610a85565b5b90506020028101906103139190610ac3565b8581811061032457610323610a85565b5b905060200201358152602001908152602001600020819055508787838181106103505761034f610a85565b5b90506020020160208101906103659190610b26565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061038e5761038d610a85565b5b90506020028101906103a09190610ac3565b838181106103b1576103b0610a85565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0336040516103e89190610b62565b60405180910390a4806001019050610247565b50806001019050610239565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b3385610473828261065b565b60005b868690508110156106515760005b85858381811061049757610496610a85565b5b90506020028101906104a99190610ac3565b90508110156106455760008060008b815260200190815260200160002060008a8a868181106104db576104da610a85565b5b90506020020160208101906104f09190610b26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061053f5761053e610a85565b5b90506020028101906105519190610ac3565b8581811061056257610561610a85565b5b9050602002013581526020019081526020016000208190555087878381811061058e5761058d610a85565b5b90506020020160208101906105a39190610b26565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105cc576105cb610a85565b5b90506020028101906105de9190610ac3565b838181106105ef576105ee610a85565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75336040516106269190610b62565b60405180910390a48060010190508061063e90610bac565b9050610484565b50806001019050610476565b5050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106cb9190610c03565b602060405180830381865afa1580156106e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070c9190610c33565b73ffffffffffffffffffffffffffffffffffffffff16146107665781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161075d929190610c60565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b61078781610774565b811461079257600080fd5b50565b6000813590506107a48161077e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107d5826107aa565b9050919050565b6107e5816107ca565b81146107f057600080fd5b50565b600081359050610802816107dc565b92915050565b6000819050919050565b61081b81610808565b811461082657600080fd5b50565b60008135905061083881610812565b92915050565b6000806000606084860312156108575761085661076a565b5b600061086586828701610795565b9350506020610876868287016107f3565b925050604061088786828701610829565b9150509250925092565b61089a81610808565b82525050565b60006020820190506108b56000830184610891565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108e0576108df6108bb565b5b8235905067ffffffffffffffff8111156108fd576108fc6108c0565b5b602083019150836020820283011115610919576109186108c5565b5b9250929050565b60008083601f840112610936576109356108bb565b5b8235905067ffffffffffffffff811115610953576109526108c0565b5b60208301915083602082028301111561096f5761096e6108c5565b5b9250929050565b6000806000806000606086880312156109925761099161076a565b5b60006109a088828901610795565b955050602086013567ffffffffffffffff8111156109c1576109c061076f565b5b6109cd888289016108ca565b9450945050604086013567ffffffffffffffff8111156109f0576109ef61076f565b5b6109fc88828901610920565b92509250509295509295909350565b6000819050919050565b6000610a30610a2b610a26846107aa565b610a0b565b6107aa565b9050919050565b6000610a4282610a15565b9050919050565b6000610a5482610a37565b9050919050565b610a6481610a49565b82525050565b6000602082019050610a7f6000830184610a5b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610ae057610adf610ab4565b5b80840192508235915067ffffffffffffffff821115610b0257610b01610ab9565b5b602083019250602082023603831315610b1e57610b1d610abe565b5b509250929050565b600060208284031215610b3c57610b3b61076a565b5b6000610b4a848285016107f3565b91505092915050565b610b5c816107ca565b82525050565b6000602082019050610b776000830184610b53565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bb782610808565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610be957610be8610b7d565b5b600182019050919050565b610bfd81610774565b82525050565b6000602082019050610c186000830184610bf4565b92915050565b600081519050610c2d816107dc565b92915050565b600060208284031215610c4957610c4861076a565b5b6000610c5784828501610c1e565b91505092915050565b6000604082019050610c756000830185610b53565b610c826020830184610bf4565b939250505056fea264697066735822122022c0c17b2cbc5db02001b8e5e67ef586328fbf7d3fe2fa08565b8cdb4fd8e1e764736f6c634300081c0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xDDF CODESIZE SUB DUP1 PUSH2 0xDDF DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xD1 JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9E DUP3 PUSH2 0x73 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAE DUP2 PUSH2 0x93 JUMP JUMPDEST DUP2 EQ PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xCB DUP2 PUSH2 0xA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE7 JUMPI PUSH2 0xE6 PUSH2 0x6E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF5 DUP5 DUP3 DUP6 ADD PUSH2 0xBC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xCBF PUSH2 0x120 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x445 ADD MSTORE PUSH2 0x674 ADD MSTORE PUSH2 0xCBF 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46852D0 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xF59A498 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x79FB477A EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x82EF31D9 EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x976 JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE0 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x976 JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x189 JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x21D JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER DUP6 PUSH2 0x236 DUP3 DUP3 PUSH2 0x65B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x25A JUMPI PUSH2 0x259 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x3FB JUMPI TIMESTAMP PUSH1 0x0 DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x29D JUMPI PUSH2 0x29C PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B2 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x324 JUMPI PUSH2 0x323 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x350 JUMPI PUSH2 0x34F PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38D PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x3B1 JUMPI PUSH2 0x3B0 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0xC177490B924686771EB8A2B77BEE53E5913E624C90B60207D396F81CFE6E7CD0 CALLER PUSH1 0x40 MLOAD PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x247 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x239 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST CALLER DUP6 PUSH2 0x473 DUP3 DUP3 PUSH2 0x65B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x497 JUMPI PUSH2 0x496 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4A9 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x645 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x4DB JUMPI PUSH2 0x4DA PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4F0 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x53F JUMPI PUSH2 0x53E PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x562 JUMPI PUSH2 0x561 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x5CC JUMPI PUSH2 0x5CB PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x5DE SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x5EF JUMPI PUSH2 0x5EE PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0x36BE184145FBD476FFE0597F987F89D7490B926E334512A42DE54749EEE25E75 CALLER PUSH1 0x40 MLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP DUP1 PUSH2 0x63E SWAP1 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP PUSH2 0x484 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x476 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CB SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x70C SWAP2 SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x766 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP3 SWAP2 SWAP1 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x787 DUP2 PUSH2 0x774 JUMP JUMPDEST DUP2 EQ PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7A4 DUP2 PUSH2 0x77E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP3 PUSH2 0x7AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E5 DUP2 PUSH2 0x7CA JUMP JUMPDEST DUP2 EQ PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x802 DUP2 PUSH2 0x7DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x81B DUP2 PUSH2 0x808 JUMP JUMPDEST DUP2 EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x838 DUP2 PUSH2 0x812 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x865 DUP7 DUP3 DUP8 ADD PUSH2 0x795 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x876 DUP7 DUP3 DUP8 ADD PUSH2 0x7F3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x887 DUP7 DUP3 DUP8 ADD PUSH2 0x829 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x89A DUP2 PUSH2 0x808 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8B5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x891 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x8E0 JUMPI PUSH2 0x8DF PUSH2 0x8BB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8FD JUMPI PUSH2 0x8FC PUSH2 0x8C0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x919 JUMPI PUSH2 0x918 PUSH2 0x8C5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x936 JUMPI PUSH2 0x935 PUSH2 0x8BB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x953 JUMPI PUSH2 0x952 PUSH2 0x8C0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x96F JUMPI PUSH2 0x96E PUSH2 0x8C5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x992 JUMPI PUSH2 0x991 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9A0 DUP9 DUP3 DUP10 ADD PUSH2 0x795 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C0 PUSH2 0x76F JUMP JUMPDEST JUMPDEST PUSH2 0x9CD DUP9 DUP3 DUP10 ADD PUSH2 0x8CA JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9F0 JUMPI PUSH2 0x9EF PUSH2 0x76F JUMP JUMPDEST JUMPDEST PUSH2 0x9FC DUP9 DUP3 DUP10 ADD PUSH2 0x920 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA30 PUSH2 0xA2B PUSH2 0xA26 DUP5 PUSH2 0x7AA JUMP JUMPDEST PUSH2 0xA0B JUMP JUMPDEST PUSH2 0x7AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA42 DUP3 PUSH2 0xA15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 DUP3 PUSH2 0xA37 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA64 DUP2 PUSH2 0xA49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA7F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xAE0 JUMPI PUSH2 0xADF PUSH2 0xAB4 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB02 JUMPI PUSH2 0xB01 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x20 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xB1E JUMPI PUSH2 0xB1D PUSH2 0xABE JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3C JUMPI PUSH2 0xB3B PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB4A DUP5 DUP3 DUP6 ADD PUSH2 0x7F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5C DUP2 PUSH2 0x7CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB77 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB53 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBB7 DUP3 PUSH2 0x808 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xBE9 JUMPI PUSH2 0xBE8 PUSH2 0xB7D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBFD DUP2 PUSH2 0x774 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC18 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC2D DUP2 PUSH2 0x7DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC48 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP5 DUP3 DUP6 ADD PUSH2 0xC1E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xC75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xC82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xBF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xC0 0xC1 PUSH28 0x2CBC5DB02001B8E5E67EF586328FBF7D3FE2FA08565B8CDB4FD8E1E7 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"559:3288:43:-:0;;;1460:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1505:9;1157:12:29;1133:37;;;;;;;;;;1089:88;1460:58:43;559:3288;;88:117:44;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;559:3288:43:-;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkDomainOwner_7203":{"entryPoint":1627,"id":7203,"parameterSlots":2,"returnSlots":0},"@addAddresses_8609":{"entryPoint":554,"id":8609,"parameterSlots":5,"returnSlots":0},"@isVerified_8738":{"entryPoint":274,"id":8738,"parameterSlots":3,"returnSlots":1},"@registry_7147":{"entryPoint":1091,"id":7147,"parameterSlots":0,"returnSlots":0},"@removeAddresses_8689":{"entryPoint":1127,"id":8689,"parameterSlots":5,"returnSlots":0},"@verifiedContracts_8500":{"entryPoint":1041,"id":8500,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2035,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":3102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":2250,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":2336,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes32":{"entryPoint":1941,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2089,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2854,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":3123,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_addresst_uint256":{"entryPoint":2110,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":2422,"id":null,"parameterSlots":2,"returnSlots":5},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2899,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":3060,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack":{"entryPoint":2651,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2193,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2914,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":3168,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":3075,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed":{"entryPoint":2666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2208,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":2755,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":1994,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":1908,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1962,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2056,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_ISciRegistry_$8112_to_t_address":{"entryPoint":2633,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2615,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2581,"id":null,"parameterSlots":1,"returnSlots":1},"identity":{"entryPoint":2571,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":2988,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2941,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":2693,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":2240,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2235,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":2745,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":2740,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2245,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":2750,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1903,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1898,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2012,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2066,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9803:44","nodeType":"YulBlock","src":"0:9803:44","statements":[{"body":{"nativeSrc":"47:35:44","nodeType":"YulBlock","src":"47:35:44","statements":[{"nativeSrc":"57:19:44","nodeType":"YulAssignment","src":"57:19:44","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:44","nodeType":"YulLiteral","src":"73:2:44","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:44","nodeType":"YulIdentifier","src":"67:5:44"},"nativeSrc":"67:9:44","nodeType":"YulFunctionCall","src":"67:9:44"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:44","nodeType":"YulIdentifier","src":"57:6:44"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:44","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:44","nodeType":"YulTypedName","src":"40:6:44","type":""}],"src":"7:75:44"},{"body":{"nativeSrc":"177:28:44","nodeType":"YulBlock","src":"177:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:44","nodeType":"YulLiteral","src":"194:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:44","nodeType":"YulLiteral","src":"197:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:44","nodeType":"YulIdentifier","src":"187:6:44"},"nativeSrc":"187:12:44","nodeType":"YulFunctionCall","src":"187:12:44"},"nativeSrc":"187:12:44","nodeType":"YulExpressionStatement","src":"187:12:44"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:44","nodeType":"YulFunctionDefinition","src":"88:117:44"},{"body":{"nativeSrc":"300:28:44","nodeType":"YulBlock","src":"300:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:44","nodeType":"YulLiteral","src":"317:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:44","nodeType":"YulLiteral","src":"320:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:44","nodeType":"YulIdentifier","src":"310:6:44"},"nativeSrc":"310:12:44","nodeType":"YulFunctionCall","src":"310:12:44"},"nativeSrc":"310:12:44","nodeType":"YulExpressionStatement","src":"310:12:44"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:44","nodeType":"YulFunctionDefinition","src":"211:117:44"},{"body":{"nativeSrc":"379:32:44","nodeType":"YulBlock","src":"379:32:44","statements":[{"nativeSrc":"389:16:44","nodeType":"YulAssignment","src":"389:16:44","value":{"name":"value","nativeSrc":"400:5:44","nodeType":"YulIdentifier","src":"400:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:44","nodeType":"YulIdentifier","src":"389:7:44"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"334:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:44","nodeType":"YulTypedName","src":"361:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:44","nodeType":"YulTypedName","src":"371:7:44","type":""}],"src":"334:77:44"},{"body":{"nativeSrc":"460:79:44","nodeType":"YulBlock","src":"460:79:44","statements":[{"body":{"nativeSrc":"517:16:44","nodeType":"YulBlock","src":"517:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:44","nodeType":"YulLiteral","src":"526:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:44","nodeType":"YulLiteral","src":"529:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:44","nodeType":"YulIdentifier","src":"519:6:44"},"nativeSrc":"519:12:44","nodeType":"YulFunctionCall","src":"519:12:44"},"nativeSrc":"519:12:44","nodeType":"YulExpressionStatement","src":"519:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:44","nodeType":"YulIdentifier","src":"483:5:44"},{"arguments":[{"name":"value","nativeSrc":"508:5:44","nodeType":"YulIdentifier","src":"508:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"490:17:44","nodeType":"YulIdentifier","src":"490:17:44"},"nativeSrc":"490:24:44","nodeType":"YulFunctionCall","src":"490:24:44"}],"functionName":{"name":"eq","nativeSrc":"480:2:44","nodeType":"YulIdentifier","src":"480:2:44"},"nativeSrc":"480:35:44","nodeType":"YulFunctionCall","src":"480:35:44"}],"functionName":{"name":"iszero","nativeSrc":"473:6:44","nodeType":"YulIdentifier","src":"473:6:44"},"nativeSrc":"473:43:44","nodeType":"YulFunctionCall","src":"473:43:44"},"nativeSrc":"470:63:44","nodeType":"YulIf","src":"470:63:44"}]},"name":"validator_revert_t_bytes32","nativeSrc":"417:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:44","nodeType":"YulTypedName","src":"453:5:44","type":""}],"src":"417:122:44"},{"body":{"nativeSrc":"597:87:44","nodeType":"YulBlock","src":"597:87:44","statements":[{"nativeSrc":"607:29:44","nodeType":"YulAssignment","src":"607:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:44","nodeType":"YulIdentifier","src":"629:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:44","nodeType":"YulIdentifier","src":"616:12:44"},"nativeSrc":"616:20:44","nodeType":"YulFunctionCall","src":"616:20:44"},"variableNames":[{"name":"value","nativeSrc":"607:5:44","nodeType":"YulIdentifier","src":"607:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:44","nodeType":"YulIdentifier","src":"672:5:44"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"645:26:44","nodeType":"YulIdentifier","src":"645:26:44"},"nativeSrc":"645:33:44","nodeType":"YulFunctionCall","src":"645:33:44"},"nativeSrc":"645:33:44","nodeType":"YulExpressionStatement","src":"645:33:44"}]},"name":"abi_decode_t_bytes32","nativeSrc":"545:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:44","nodeType":"YulTypedName","src":"575:6:44","type":""},{"name":"end","nativeSrc":"583:3:44","nodeType":"YulTypedName","src":"583:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:44","nodeType":"YulTypedName","src":"591:5:44","type":""}],"src":"545:139:44"},{"body":{"nativeSrc":"735:81:44","nodeType":"YulBlock","src":"735:81:44","statements":[{"nativeSrc":"745:65:44","nodeType":"YulAssignment","src":"745:65:44","value":{"arguments":[{"name":"value","nativeSrc":"760:5:44","nodeType":"YulIdentifier","src":"760:5:44"},{"kind":"number","nativeSrc":"767:42:44","nodeType":"YulLiteral","src":"767:42:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"756:3:44","nodeType":"YulIdentifier","src":"756:3:44"},"nativeSrc":"756:54:44","nodeType":"YulFunctionCall","src":"756:54:44"},"variableNames":[{"name":"cleaned","nativeSrc":"745:7:44","nodeType":"YulIdentifier","src":"745:7:44"}]}]},"name":"cleanup_t_uint160","nativeSrc":"690:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"717:5:44","nodeType":"YulTypedName","src":"717:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"727:7:44","nodeType":"YulTypedName","src":"727:7:44","type":""}],"src":"690:126:44"},{"body":{"nativeSrc":"867:51:44","nodeType":"YulBlock","src":"867:51:44","statements":[{"nativeSrc":"877:35:44","nodeType":"YulAssignment","src":"877:35:44","value":{"arguments":[{"name":"value","nativeSrc":"906:5:44","nodeType":"YulIdentifier","src":"906:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"888:17:44","nodeType":"YulIdentifier","src":"888:17:44"},"nativeSrc":"888:24:44","nodeType":"YulFunctionCall","src":"888:24:44"},"variableNames":[{"name":"cleaned","nativeSrc":"877:7:44","nodeType":"YulIdentifier","src":"877:7:44"}]}]},"name":"cleanup_t_address","nativeSrc":"822:96:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"849:5:44","nodeType":"YulTypedName","src":"849:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"859:7:44","nodeType":"YulTypedName","src":"859:7:44","type":""}],"src":"822:96:44"},{"body":{"nativeSrc":"967:79:44","nodeType":"YulBlock","src":"967:79:44","statements":[{"body":{"nativeSrc":"1024:16:44","nodeType":"YulBlock","src":"1024:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:44","nodeType":"YulLiteral","src":"1033:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:44","nodeType":"YulLiteral","src":"1036:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:44","nodeType":"YulIdentifier","src":"1026:6:44"},"nativeSrc":"1026:12:44","nodeType":"YulFunctionCall","src":"1026:12:44"},"nativeSrc":"1026:12:44","nodeType":"YulExpressionStatement","src":"1026:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:44","nodeType":"YulIdentifier","src":"990:5:44"},{"arguments":[{"name":"value","nativeSrc":"1015:5:44","nodeType":"YulIdentifier","src":"1015:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"997:17:44","nodeType":"YulIdentifier","src":"997:17:44"},"nativeSrc":"997:24:44","nodeType":"YulFunctionCall","src":"997:24:44"}],"functionName":{"name":"eq","nativeSrc":"987:2:44","nodeType":"YulIdentifier","src":"987:2:44"},"nativeSrc":"987:35:44","nodeType":"YulFunctionCall","src":"987:35:44"}],"functionName":{"name":"iszero","nativeSrc":"980:6:44","nodeType":"YulIdentifier","src":"980:6:44"},"nativeSrc":"980:43:44","nodeType":"YulFunctionCall","src":"980:43:44"},"nativeSrc":"977:63:44","nodeType":"YulIf","src":"977:63:44"}]},"name":"validator_revert_t_address","nativeSrc":"924:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:44","nodeType":"YulTypedName","src":"960:5:44","type":""}],"src":"924:122:44"},{"body":{"nativeSrc":"1104:87:44","nodeType":"YulBlock","src":"1104:87:44","statements":[{"nativeSrc":"1114:29:44","nodeType":"YulAssignment","src":"1114:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:44","nodeType":"YulIdentifier","src":"1136:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:44","nodeType":"YulIdentifier","src":"1123:12:44"},"nativeSrc":"1123:20:44","nodeType":"YulFunctionCall","src":"1123:20:44"},"variableNames":[{"name":"value","nativeSrc":"1114:5:44","nodeType":"YulIdentifier","src":"1114:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:44","nodeType":"YulIdentifier","src":"1179:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1152:26:44","nodeType":"YulIdentifier","src":"1152:26:44"},"nativeSrc":"1152:33:44","nodeType":"YulFunctionCall","src":"1152:33:44"},"nativeSrc":"1152:33:44","nodeType":"YulExpressionStatement","src":"1152:33:44"}]},"name":"abi_decode_t_address","nativeSrc":"1052:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:44","nodeType":"YulTypedName","src":"1082:6:44","type":""},{"name":"end","nativeSrc":"1090:3:44","nodeType":"YulTypedName","src":"1090:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:44","nodeType":"YulTypedName","src":"1098:5:44","type":""}],"src":"1052:139:44"},{"body":{"nativeSrc":"1242:32:44","nodeType":"YulBlock","src":"1242:32:44","statements":[{"nativeSrc":"1252:16:44","nodeType":"YulAssignment","src":"1252:16:44","value":{"name":"value","nativeSrc":"1263:5:44","nodeType":"YulIdentifier","src":"1263:5:44"},"variableNames":[{"name":"cleaned","nativeSrc":"1252:7:44","nodeType":"YulIdentifier","src":"1252:7:44"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1197:77:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1224:5:44","nodeType":"YulTypedName","src":"1224:5:44","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1234:7:44","nodeType":"YulTypedName","src":"1234:7:44","type":""}],"src":"1197:77:44"},{"body":{"nativeSrc":"1323:79:44","nodeType":"YulBlock","src":"1323:79:44","statements":[{"body":{"nativeSrc":"1380:16:44","nodeType":"YulBlock","src":"1380:16:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1389:1:44","nodeType":"YulLiteral","src":"1389:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"1392:1:44","nodeType":"YulLiteral","src":"1392:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1382:6:44","nodeType":"YulIdentifier","src":"1382:6:44"},"nativeSrc":"1382:12:44","nodeType":"YulFunctionCall","src":"1382:12:44"},"nativeSrc":"1382:12:44","nodeType":"YulExpressionStatement","src":"1382:12:44"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1346:5:44","nodeType":"YulIdentifier","src":"1346:5:44"},{"arguments":[{"name":"value","nativeSrc":"1371:5:44","nodeType":"YulIdentifier","src":"1371:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1353:17:44","nodeType":"YulIdentifier","src":"1353:17:44"},"nativeSrc":"1353:24:44","nodeType":"YulFunctionCall","src":"1353:24:44"}],"functionName":{"name":"eq","nativeSrc":"1343:2:44","nodeType":"YulIdentifier","src":"1343:2:44"},"nativeSrc":"1343:35:44","nodeType":"YulFunctionCall","src":"1343:35:44"}],"functionName":{"name":"iszero","nativeSrc":"1336:6:44","nodeType":"YulIdentifier","src":"1336:6:44"},"nativeSrc":"1336:43:44","nodeType":"YulFunctionCall","src":"1336:43:44"},"nativeSrc":"1333:63:44","nodeType":"YulIf","src":"1333:63:44"}]},"name":"validator_revert_t_uint256","nativeSrc":"1280:122:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1316:5:44","nodeType":"YulTypedName","src":"1316:5:44","type":""}],"src":"1280:122:44"},{"body":{"nativeSrc":"1460:87:44","nodeType":"YulBlock","src":"1460:87:44","statements":[{"nativeSrc":"1470:29:44","nodeType":"YulAssignment","src":"1470:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"1492:6:44","nodeType":"YulIdentifier","src":"1492:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"1479:12:44","nodeType":"YulIdentifier","src":"1479:12:44"},"nativeSrc":"1479:20:44","nodeType":"YulFunctionCall","src":"1479:20:44"},"variableNames":[{"name":"value","nativeSrc":"1470:5:44","nodeType":"YulIdentifier","src":"1470:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1535:5:44","nodeType":"YulIdentifier","src":"1535:5:44"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1508:26:44","nodeType":"YulIdentifier","src":"1508:26:44"},"nativeSrc":"1508:33:44","nodeType":"YulFunctionCall","src":"1508:33:44"},"nativeSrc":"1508:33:44","nodeType":"YulExpressionStatement","src":"1508:33:44"}]},"name":"abi_decode_t_uint256","nativeSrc":"1408:139:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1438:6:44","nodeType":"YulTypedName","src":"1438:6:44","type":""},{"name":"end","nativeSrc":"1446:3:44","nodeType":"YulTypedName","src":"1446:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1454:5:44","nodeType":"YulTypedName","src":"1454:5:44","type":""}],"src":"1408:139:44"},{"body":{"nativeSrc":"1653:519:44","nodeType":"YulBlock","src":"1653:519:44","statements":[{"body":{"nativeSrc":"1699:83:44","nodeType":"YulBlock","src":"1699:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1701:77:44","nodeType":"YulIdentifier","src":"1701:77:44"},"nativeSrc":"1701:79:44","nodeType":"YulFunctionCall","src":"1701:79:44"},"nativeSrc":"1701:79:44","nodeType":"YulExpressionStatement","src":"1701:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1674:7:44","nodeType":"YulIdentifier","src":"1674:7:44"},{"name":"headStart","nativeSrc":"1683:9:44","nodeType":"YulIdentifier","src":"1683:9:44"}],"functionName":{"name":"sub","nativeSrc":"1670:3:44","nodeType":"YulIdentifier","src":"1670:3:44"},"nativeSrc":"1670:23:44","nodeType":"YulFunctionCall","src":"1670:23:44"},{"kind":"number","nativeSrc":"1695:2:44","nodeType":"YulLiteral","src":"1695:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"1666:3:44","nodeType":"YulIdentifier","src":"1666:3:44"},"nativeSrc":"1666:32:44","nodeType":"YulFunctionCall","src":"1666:32:44"},"nativeSrc":"1663:119:44","nodeType":"YulIf","src":"1663:119:44"},{"nativeSrc":"1792:117:44","nodeType":"YulBlock","src":"1792:117:44","statements":[{"nativeSrc":"1807:15:44","nodeType":"YulVariableDeclaration","src":"1807:15:44","value":{"kind":"number","nativeSrc":"1821:1:44","nodeType":"YulLiteral","src":"1821:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1811:6:44","nodeType":"YulTypedName","src":"1811:6:44","type":""}]},{"nativeSrc":"1836:63:44","nodeType":"YulAssignment","src":"1836:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1871:9:44","nodeType":"YulIdentifier","src":"1871:9:44"},{"name":"offset","nativeSrc":"1882:6:44","nodeType":"YulIdentifier","src":"1882:6:44"}],"functionName":{"name":"add","nativeSrc":"1867:3:44","nodeType":"YulIdentifier","src":"1867:3:44"},"nativeSrc":"1867:22:44","nodeType":"YulFunctionCall","src":"1867:22:44"},{"name":"dataEnd","nativeSrc":"1891:7:44","nodeType":"YulIdentifier","src":"1891:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"1846:20:44","nodeType":"YulIdentifier","src":"1846:20:44"},"nativeSrc":"1846:53:44","nodeType":"YulFunctionCall","src":"1846:53:44"},"variableNames":[{"name":"value0","nativeSrc":"1836:6:44","nodeType":"YulIdentifier","src":"1836:6:44"}]}]},{"nativeSrc":"1919:118:44","nodeType":"YulBlock","src":"1919:118:44","statements":[{"nativeSrc":"1934:16:44","nodeType":"YulVariableDeclaration","src":"1934:16:44","value":{"kind":"number","nativeSrc":"1948:2:44","nodeType":"YulLiteral","src":"1948:2:44","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1938:6:44","nodeType":"YulTypedName","src":"1938:6:44","type":""}]},{"nativeSrc":"1964:63:44","nodeType":"YulAssignment","src":"1964:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1999:9:44","nodeType":"YulIdentifier","src":"1999:9:44"},{"name":"offset","nativeSrc":"2010:6:44","nodeType":"YulIdentifier","src":"2010:6:44"}],"functionName":{"name":"add","nativeSrc":"1995:3:44","nodeType":"YulIdentifier","src":"1995:3:44"},"nativeSrc":"1995:22:44","nodeType":"YulFunctionCall","src":"1995:22:44"},{"name":"dataEnd","nativeSrc":"2019:7:44","nodeType":"YulIdentifier","src":"2019:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1974:20:44","nodeType":"YulIdentifier","src":"1974:20:44"},"nativeSrc":"1974:53:44","nodeType":"YulFunctionCall","src":"1974:53:44"},"variableNames":[{"name":"value1","nativeSrc":"1964:6:44","nodeType":"YulIdentifier","src":"1964:6:44"}]}]},{"nativeSrc":"2047:118:44","nodeType":"YulBlock","src":"2047:118:44","statements":[{"nativeSrc":"2062:16:44","nodeType":"YulVariableDeclaration","src":"2062:16:44","value":{"kind":"number","nativeSrc":"2076:2:44","nodeType":"YulLiteral","src":"2076:2:44","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"2066:6:44","nodeType":"YulTypedName","src":"2066:6:44","type":""}]},{"nativeSrc":"2092:63:44","nodeType":"YulAssignment","src":"2092:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2127:9:44","nodeType":"YulIdentifier","src":"2127:9:44"},{"name":"offset","nativeSrc":"2138:6:44","nodeType":"YulIdentifier","src":"2138:6:44"}],"functionName":{"name":"add","nativeSrc":"2123:3:44","nodeType":"YulIdentifier","src":"2123:3:44"},"nativeSrc":"2123:22:44","nodeType":"YulFunctionCall","src":"2123:22:44"},{"name":"dataEnd","nativeSrc":"2147:7:44","nodeType":"YulIdentifier","src":"2147:7:44"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2102:20:44","nodeType":"YulIdentifier","src":"2102:20:44"},"nativeSrc":"2102:53:44","nodeType":"YulFunctionCall","src":"2102:53:44"},"variableNames":[{"name":"value2","nativeSrc":"2092:6:44","nodeType":"YulIdentifier","src":"2092:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nativeSrc":"1553:619:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1607:9:44","nodeType":"YulTypedName","src":"1607:9:44","type":""},{"name":"dataEnd","nativeSrc":"1618:7:44","nodeType":"YulTypedName","src":"1618:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1630:6:44","nodeType":"YulTypedName","src":"1630:6:44","type":""},{"name":"value1","nativeSrc":"1638:6:44","nodeType":"YulTypedName","src":"1638:6:44","type":""},{"name":"value2","nativeSrc":"1646:6:44","nodeType":"YulTypedName","src":"1646:6:44","type":""}],"src":"1553:619:44"},{"body":{"nativeSrc":"2243:53:44","nodeType":"YulBlock","src":"2243:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2260:3:44","nodeType":"YulIdentifier","src":"2260:3:44"},{"arguments":[{"name":"value","nativeSrc":"2283:5:44","nodeType":"YulIdentifier","src":"2283:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2265:17:44","nodeType":"YulIdentifier","src":"2265:17:44"},"nativeSrc":"2265:24:44","nodeType":"YulFunctionCall","src":"2265:24:44"}],"functionName":{"name":"mstore","nativeSrc":"2253:6:44","nodeType":"YulIdentifier","src":"2253:6:44"},"nativeSrc":"2253:37:44","nodeType":"YulFunctionCall","src":"2253:37:44"},"nativeSrc":"2253:37:44","nodeType":"YulExpressionStatement","src":"2253:37:44"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2178:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2231:5:44","nodeType":"YulTypedName","src":"2231:5:44","type":""},{"name":"pos","nativeSrc":"2238:3:44","nodeType":"YulTypedName","src":"2238:3:44","type":""}],"src":"2178:118:44"},{"body":{"nativeSrc":"2400:124:44","nodeType":"YulBlock","src":"2400:124:44","statements":[{"nativeSrc":"2410:26:44","nodeType":"YulAssignment","src":"2410:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"2422:9:44","nodeType":"YulIdentifier","src":"2422:9:44"},{"kind":"number","nativeSrc":"2433:2:44","nodeType":"YulLiteral","src":"2433:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2418:3:44","nodeType":"YulIdentifier","src":"2418:3:44"},"nativeSrc":"2418:18:44","nodeType":"YulFunctionCall","src":"2418:18:44"},"variableNames":[{"name":"tail","nativeSrc":"2410:4:44","nodeType":"YulIdentifier","src":"2410:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2490:6:44","nodeType":"YulIdentifier","src":"2490:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"2503:9:44","nodeType":"YulIdentifier","src":"2503:9:44"},{"kind":"number","nativeSrc":"2514:1:44","nodeType":"YulLiteral","src":"2514:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2499:3:44","nodeType":"YulIdentifier","src":"2499:3:44"},"nativeSrc":"2499:17:44","nodeType":"YulFunctionCall","src":"2499:17:44"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2446:43:44","nodeType":"YulIdentifier","src":"2446:43:44"},"nativeSrc":"2446:71:44","nodeType":"YulFunctionCall","src":"2446:71:44"},"nativeSrc":"2446:71:44","nodeType":"YulExpressionStatement","src":"2446:71:44"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2302:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2372:9:44","nodeType":"YulTypedName","src":"2372:9:44","type":""},{"name":"value0","nativeSrc":"2384:6:44","nodeType":"YulTypedName","src":"2384:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2395:4:44","nodeType":"YulTypedName","src":"2395:4:44","type":""}],"src":"2302:222:44"},{"body":{"nativeSrc":"2619:28:44","nodeType":"YulBlock","src":"2619:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2636:1:44","nodeType":"YulLiteral","src":"2636:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2639:1:44","nodeType":"YulLiteral","src":"2639:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2629:6:44","nodeType":"YulIdentifier","src":"2629:6:44"},"nativeSrc":"2629:12:44","nodeType":"YulFunctionCall","src":"2629:12:44"},"nativeSrc":"2629:12:44","nodeType":"YulExpressionStatement","src":"2629:12:44"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2530:117:44","nodeType":"YulFunctionDefinition","src":"2530:117:44"},{"body":{"nativeSrc":"2742:28:44","nodeType":"YulBlock","src":"2742:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2759:1:44","nodeType":"YulLiteral","src":"2759:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2762:1:44","nodeType":"YulLiteral","src":"2762:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2752:6:44","nodeType":"YulIdentifier","src":"2752:6:44"},"nativeSrc":"2752:12:44","nodeType":"YulFunctionCall","src":"2752:12:44"},"nativeSrc":"2752:12:44","nodeType":"YulExpressionStatement","src":"2752:12:44"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2653:117:44","nodeType":"YulFunctionDefinition","src":"2653:117:44"},{"body":{"nativeSrc":"2865:28:44","nodeType":"YulBlock","src":"2865:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2882:1:44","nodeType":"YulLiteral","src":"2882:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"2885:1:44","nodeType":"YulLiteral","src":"2885:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2875:6:44","nodeType":"YulIdentifier","src":"2875:6:44"},"nativeSrc":"2875:12:44","nodeType":"YulFunctionCall","src":"2875:12:44"},"nativeSrc":"2875:12:44","nodeType":"YulExpressionStatement","src":"2875:12:44"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2776:117:44","nodeType":"YulFunctionDefinition","src":"2776:117:44"},{"body":{"nativeSrc":"3006:478:44","nodeType":"YulBlock","src":"3006:478:44","statements":[{"body":{"nativeSrc":"3055:83:44","nodeType":"YulBlock","src":"3055:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3057:77:44","nodeType":"YulIdentifier","src":"3057:77:44"},"nativeSrc":"3057:79:44","nodeType":"YulFunctionCall","src":"3057:79:44"},"nativeSrc":"3057:79:44","nodeType":"YulExpressionStatement","src":"3057:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3034:6:44","nodeType":"YulIdentifier","src":"3034:6:44"},{"kind":"number","nativeSrc":"3042:4:44","nodeType":"YulLiteral","src":"3042:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3030:3:44","nodeType":"YulIdentifier","src":"3030:3:44"},"nativeSrc":"3030:17:44","nodeType":"YulFunctionCall","src":"3030:17:44"},{"name":"end","nativeSrc":"3049:3:44","nodeType":"YulIdentifier","src":"3049:3:44"}],"functionName":{"name":"slt","nativeSrc":"3026:3:44","nodeType":"YulIdentifier","src":"3026:3:44"},"nativeSrc":"3026:27:44","nodeType":"YulFunctionCall","src":"3026:27:44"}],"functionName":{"name":"iszero","nativeSrc":"3019:6:44","nodeType":"YulIdentifier","src":"3019:6:44"},"nativeSrc":"3019:35:44","nodeType":"YulFunctionCall","src":"3019:35:44"},"nativeSrc":"3016:122:44","nodeType":"YulIf","src":"3016:122:44"},{"nativeSrc":"3147:30:44","nodeType":"YulAssignment","src":"3147:30:44","value":{"arguments":[{"name":"offset","nativeSrc":"3170:6:44","nodeType":"YulIdentifier","src":"3170:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3157:12:44","nodeType":"YulIdentifier","src":"3157:12:44"},"nativeSrc":"3157:20:44","nodeType":"YulFunctionCall","src":"3157:20:44"},"variableNames":[{"name":"length","nativeSrc":"3147:6:44","nodeType":"YulIdentifier","src":"3147:6:44"}]},{"body":{"nativeSrc":"3220:83:44","nodeType":"YulBlock","src":"3220:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3222:77:44","nodeType":"YulIdentifier","src":"3222:77:44"},"nativeSrc":"3222:79:44","nodeType":"YulFunctionCall","src":"3222:79:44"},"nativeSrc":"3222:79:44","nodeType":"YulExpressionStatement","src":"3222:79:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3192:6:44","nodeType":"YulIdentifier","src":"3192:6:44"},{"kind":"number","nativeSrc":"3200:18:44","nodeType":"YulLiteral","src":"3200:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3189:2:44","nodeType":"YulIdentifier","src":"3189:2:44"},"nativeSrc":"3189:30:44","nodeType":"YulFunctionCall","src":"3189:30:44"},"nativeSrc":"3186:117:44","nodeType":"YulIf","src":"3186:117:44"},{"nativeSrc":"3312:29:44","nodeType":"YulAssignment","src":"3312:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3328:6:44","nodeType":"YulIdentifier","src":"3328:6:44"},{"kind":"number","nativeSrc":"3336:4:44","nodeType":"YulLiteral","src":"3336:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3324:3:44","nodeType":"YulIdentifier","src":"3324:3:44"},"nativeSrc":"3324:17:44","nodeType":"YulFunctionCall","src":"3324:17:44"},"variableNames":[{"name":"arrayPos","nativeSrc":"3312:8:44","nodeType":"YulIdentifier","src":"3312:8:44"}]},{"body":{"nativeSrc":"3395:83:44","nodeType":"YulBlock","src":"3395:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3397:77:44","nodeType":"YulIdentifier","src":"3397:77:44"},"nativeSrc":"3397:79:44","nodeType":"YulFunctionCall","src":"3397:79:44"},"nativeSrc":"3397:79:44","nodeType":"YulExpressionStatement","src":"3397:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3360:8:44","nodeType":"YulIdentifier","src":"3360:8:44"},{"arguments":[{"name":"length","nativeSrc":"3374:6:44","nodeType":"YulIdentifier","src":"3374:6:44"},{"kind":"number","nativeSrc":"3382:4:44","nodeType":"YulLiteral","src":"3382:4:44","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3370:3:44","nodeType":"YulIdentifier","src":"3370:3:44"},"nativeSrc":"3370:17:44","nodeType":"YulFunctionCall","src":"3370:17:44"}],"functionName":{"name":"add","nativeSrc":"3356:3:44","nodeType":"YulIdentifier","src":"3356:3:44"},"nativeSrc":"3356:32:44","nodeType":"YulFunctionCall","src":"3356:32:44"},{"name":"end","nativeSrc":"3390:3:44","nodeType":"YulIdentifier","src":"3390:3:44"}],"functionName":{"name":"gt","nativeSrc":"3353:2:44","nodeType":"YulIdentifier","src":"3353:2:44"},"nativeSrc":"3353:41:44","nodeType":"YulFunctionCall","src":"3353:41:44"},"nativeSrc":"3350:128:44","nodeType":"YulIf","src":"3350:128:44"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"2916:568:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2973:6:44","nodeType":"YulTypedName","src":"2973:6:44","type":""},{"name":"end","nativeSrc":"2981:3:44","nodeType":"YulTypedName","src":"2981:3:44","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2989:8:44","nodeType":"YulTypedName","src":"2989:8:44","type":""},{"name":"length","nativeSrc":"2999:6:44","nodeType":"YulTypedName","src":"2999:6:44","type":""}],"src":"2916:568:44"},{"body":{"nativeSrc":"3626:478:44","nodeType":"YulBlock","src":"3626:478:44","statements":[{"body":{"nativeSrc":"3675:83:44","nodeType":"YulBlock","src":"3675:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3677:77:44","nodeType":"YulIdentifier","src":"3677:77:44"},"nativeSrc":"3677:79:44","nodeType":"YulFunctionCall","src":"3677:79:44"},"nativeSrc":"3677:79:44","nodeType":"YulExpressionStatement","src":"3677:79:44"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3654:6:44","nodeType":"YulIdentifier","src":"3654:6:44"},{"kind":"number","nativeSrc":"3662:4:44","nodeType":"YulLiteral","src":"3662:4:44","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3650:3:44","nodeType":"YulIdentifier","src":"3650:3:44"},"nativeSrc":"3650:17:44","nodeType":"YulFunctionCall","src":"3650:17:44"},{"name":"end","nativeSrc":"3669:3:44","nodeType":"YulIdentifier","src":"3669:3:44"}],"functionName":{"name":"slt","nativeSrc":"3646:3:44","nodeType":"YulIdentifier","src":"3646:3:44"},"nativeSrc":"3646:27:44","nodeType":"YulFunctionCall","src":"3646:27:44"}],"functionName":{"name":"iszero","nativeSrc":"3639:6:44","nodeType":"YulIdentifier","src":"3639:6:44"},"nativeSrc":"3639:35:44","nodeType":"YulFunctionCall","src":"3639:35:44"},"nativeSrc":"3636:122:44","nodeType":"YulIf","src":"3636:122:44"},{"nativeSrc":"3767:30:44","nodeType":"YulAssignment","src":"3767:30:44","value":{"arguments":[{"name":"offset","nativeSrc":"3790:6:44","nodeType":"YulIdentifier","src":"3790:6:44"}],"functionName":{"name":"calldataload","nativeSrc":"3777:12:44","nodeType":"YulIdentifier","src":"3777:12:44"},"nativeSrc":"3777:20:44","nodeType":"YulFunctionCall","src":"3777:20:44"},"variableNames":[{"name":"length","nativeSrc":"3767:6:44","nodeType":"YulIdentifier","src":"3767:6:44"}]},{"body":{"nativeSrc":"3840:83:44","nodeType":"YulBlock","src":"3840:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3842:77:44","nodeType":"YulIdentifier","src":"3842:77:44"},"nativeSrc":"3842:79:44","nodeType":"YulFunctionCall","src":"3842:79:44"},"nativeSrc":"3842:79:44","nodeType":"YulExpressionStatement","src":"3842:79:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3812:6:44","nodeType":"YulIdentifier","src":"3812:6:44"},{"kind":"number","nativeSrc":"3820:18:44","nodeType":"YulLiteral","src":"3820:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3809:2:44","nodeType":"YulIdentifier","src":"3809:2:44"},"nativeSrc":"3809:30:44","nodeType":"YulFunctionCall","src":"3809:30:44"},"nativeSrc":"3806:117:44","nodeType":"YulIf","src":"3806:117:44"},{"nativeSrc":"3932:29:44","nodeType":"YulAssignment","src":"3932:29:44","value":{"arguments":[{"name":"offset","nativeSrc":"3948:6:44","nodeType":"YulIdentifier","src":"3948:6:44"},{"kind":"number","nativeSrc":"3956:4:44","nodeType":"YulLiteral","src":"3956:4:44","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3944:3:44","nodeType":"YulIdentifier","src":"3944:3:44"},"nativeSrc":"3944:17:44","nodeType":"YulFunctionCall","src":"3944:17:44"},"variableNames":[{"name":"arrayPos","nativeSrc":"3932:8:44","nodeType":"YulIdentifier","src":"3932:8:44"}]},{"body":{"nativeSrc":"4015:83:44","nodeType":"YulBlock","src":"4015:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4017:77:44","nodeType":"YulIdentifier","src":"4017:77:44"},"nativeSrc":"4017:79:44","nodeType":"YulFunctionCall","src":"4017:79:44"},"nativeSrc":"4017:79:44","nodeType":"YulExpressionStatement","src":"4017:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3980:8:44","nodeType":"YulIdentifier","src":"3980:8:44"},{"arguments":[{"name":"length","nativeSrc":"3994:6:44","nodeType":"YulIdentifier","src":"3994:6:44"},{"kind":"number","nativeSrc":"4002:4:44","nodeType":"YulLiteral","src":"4002:4:44","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3990:3:44","nodeType":"YulIdentifier","src":"3990:3:44"},"nativeSrc":"3990:17:44","nodeType":"YulFunctionCall","src":"3990:17:44"}],"functionName":{"name":"add","nativeSrc":"3976:3:44","nodeType":"YulIdentifier","src":"3976:3:44"},"nativeSrc":"3976:32:44","nodeType":"YulFunctionCall","src":"3976:32:44"},{"name":"end","nativeSrc":"4010:3:44","nodeType":"YulIdentifier","src":"4010:3:44"}],"functionName":{"name":"gt","nativeSrc":"3973:2:44","nodeType":"YulIdentifier","src":"3973:2:44"},"nativeSrc":"3973:41:44","nodeType":"YulFunctionCall","src":"3973:41:44"},"nativeSrc":"3970:128:44","nodeType":"YulIf","src":"3970:128:44"}]},"name":"abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"3509:595:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3593:6:44","nodeType":"YulTypedName","src":"3593:6:44","type":""},{"name":"end","nativeSrc":"3601:3:44","nodeType":"YulTypedName","src":"3601:3:44","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3609:8:44","nodeType":"YulTypedName","src":"3609:8:44","type":""},{"name":"length","nativeSrc":"3619:6:44","nodeType":"YulTypedName","src":"3619:6:44","type":""}],"src":"3509:595:44"},{"body":{"nativeSrc":"4307:936:44","nodeType":"YulBlock","src":"4307:936:44","statements":[{"body":{"nativeSrc":"4353:83:44","nodeType":"YulBlock","src":"4353:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4355:77:44","nodeType":"YulIdentifier","src":"4355:77:44"},"nativeSrc":"4355:79:44","nodeType":"YulFunctionCall","src":"4355:79:44"},"nativeSrc":"4355:79:44","nodeType":"YulExpressionStatement","src":"4355:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4328:7:44","nodeType":"YulIdentifier","src":"4328:7:44"},{"name":"headStart","nativeSrc":"4337:9:44","nodeType":"YulIdentifier","src":"4337:9:44"}],"functionName":{"name":"sub","nativeSrc":"4324:3:44","nodeType":"YulIdentifier","src":"4324:3:44"},"nativeSrc":"4324:23:44","nodeType":"YulFunctionCall","src":"4324:23:44"},{"kind":"number","nativeSrc":"4349:2:44","nodeType":"YulLiteral","src":"4349:2:44","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4320:3:44","nodeType":"YulIdentifier","src":"4320:3:44"},"nativeSrc":"4320:32:44","nodeType":"YulFunctionCall","src":"4320:32:44"},"nativeSrc":"4317:119:44","nodeType":"YulIf","src":"4317:119:44"},{"nativeSrc":"4446:117:44","nodeType":"YulBlock","src":"4446:117:44","statements":[{"nativeSrc":"4461:15:44","nodeType":"YulVariableDeclaration","src":"4461:15:44","value":{"kind":"number","nativeSrc":"4475:1:44","nodeType":"YulLiteral","src":"4475:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4465:6:44","nodeType":"YulTypedName","src":"4465:6:44","type":""}]},{"nativeSrc":"4490:63:44","nodeType":"YulAssignment","src":"4490:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4525:9:44","nodeType":"YulIdentifier","src":"4525:9:44"},{"name":"offset","nativeSrc":"4536:6:44","nodeType":"YulIdentifier","src":"4536:6:44"}],"functionName":{"name":"add","nativeSrc":"4521:3:44","nodeType":"YulIdentifier","src":"4521:3:44"},"nativeSrc":"4521:22:44","nodeType":"YulFunctionCall","src":"4521:22:44"},{"name":"dataEnd","nativeSrc":"4545:7:44","nodeType":"YulIdentifier","src":"4545:7:44"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"4500:20:44","nodeType":"YulIdentifier","src":"4500:20:44"},"nativeSrc":"4500:53:44","nodeType":"YulFunctionCall","src":"4500:53:44"},"variableNames":[{"name":"value0","nativeSrc":"4490:6:44","nodeType":"YulIdentifier","src":"4490:6:44"}]}]},{"nativeSrc":"4573:313:44","nodeType":"YulBlock","src":"4573:313:44","statements":[{"nativeSrc":"4588:46:44","nodeType":"YulVariableDeclaration","src":"4588:46:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4619:9:44","nodeType":"YulIdentifier","src":"4619:9:44"},{"kind":"number","nativeSrc":"4630:2:44","nodeType":"YulLiteral","src":"4630:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4615:3:44","nodeType":"YulIdentifier","src":"4615:3:44"},"nativeSrc":"4615:18:44","nodeType":"YulFunctionCall","src":"4615:18:44"}],"functionName":{"name":"calldataload","nativeSrc":"4602:12:44","nodeType":"YulIdentifier","src":"4602:12:44"},"nativeSrc":"4602:32:44","nodeType":"YulFunctionCall","src":"4602:32:44"},"variables":[{"name":"offset","nativeSrc":"4592:6:44","nodeType":"YulTypedName","src":"4592:6:44","type":""}]},{"body":{"nativeSrc":"4681:83:44","nodeType":"YulBlock","src":"4681:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4683:77:44","nodeType":"YulIdentifier","src":"4683:77:44"},"nativeSrc":"4683:79:44","nodeType":"YulFunctionCall","src":"4683:79:44"},"nativeSrc":"4683:79:44","nodeType":"YulExpressionStatement","src":"4683:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4653:6:44","nodeType":"YulIdentifier","src":"4653:6:44"},{"kind":"number","nativeSrc":"4661:18:44","nodeType":"YulLiteral","src":"4661:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4650:2:44","nodeType":"YulIdentifier","src":"4650:2:44"},"nativeSrc":"4650:30:44","nodeType":"YulFunctionCall","src":"4650:30:44"},"nativeSrc":"4647:117:44","nodeType":"YulIf","src":"4647:117:44"},{"nativeSrc":"4778:98:44","nodeType":"YulAssignment","src":"4778:98:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4848:9:44","nodeType":"YulIdentifier","src":"4848:9:44"},{"name":"offset","nativeSrc":"4859:6:44","nodeType":"YulIdentifier","src":"4859:6:44"}],"functionName":{"name":"add","nativeSrc":"4844:3:44","nodeType":"YulIdentifier","src":"4844:3:44"},"nativeSrc":"4844:22:44","nodeType":"YulFunctionCall","src":"4844:22:44"},{"name":"dataEnd","nativeSrc":"4868:7:44","nodeType":"YulIdentifier","src":"4868:7:44"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4796:47:44","nodeType":"YulIdentifier","src":"4796:47:44"},"nativeSrc":"4796:80:44","nodeType":"YulFunctionCall","src":"4796:80:44"},"variableNames":[{"name":"value1","nativeSrc":"4778:6:44","nodeType":"YulIdentifier","src":"4778:6:44"},{"name":"value2","nativeSrc":"4786:6:44","nodeType":"YulIdentifier","src":"4786:6:44"}]}]},{"nativeSrc":"4896:340:44","nodeType":"YulBlock","src":"4896:340:44","statements":[{"nativeSrc":"4911:46:44","nodeType":"YulVariableDeclaration","src":"4911:46:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4942:9:44","nodeType":"YulIdentifier","src":"4942:9:44"},{"kind":"number","nativeSrc":"4953:2:44","nodeType":"YulLiteral","src":"4953:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4938:3:44","nodeType":"YulIdentifier","src":"4938:3:44"},"nativeSrc":"4938:18:44","nodeType":"YulFunctionCall","src":"4938:18:44"}],"functionName":{"name":"calldataload","nativeSrc":"4925:12:44","nodeType":"YulIdentifier","src":"4925:12:44"},"nativeSrc":"4925:32:44","nodeType":"YulFunctionCall","src":"4925:32:44"},"variables":[{"name":"offset","nativeSrc":"4915:6:44","nodeType":"YulTypedName","src":"4915:6:44","type":""}]},{"body":{"nativeSrc":"5004:83:44","nodeType":"YulBlock","src":"5004:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5006:77:44","nodeType":"YulIdentifier","src":"5006:77:44"},"nativeSrc":"5006:79:44","nodeType":"YulFunctionCall","src":"5006:79:44"},"nativeSrc":"5006:79:44","nodeType":"YulExpressionStatement","src":"5006:79:44"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4976:6:44","nodeType":"YulIdentifier","src":"4976:6:44"},{"kind":"number","nativeSrc":"4984:18:44","nodeType":"YulLiteral","src":"4984:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4973:2:44","nodeType":"YulIdentifier","src":"4973:2:44"},"nativeSrc":"4973:30:44","nodeType":"YulFunctionCall","src":"4973:30:44"},"nativeSrc":"4970:117:44","nodeType":"YulIf","src":"4970:117:44"},{"nativeSrc":"5101:125:44","nodeType":"YulAssignment","src":"5101:125:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5198:9:44","nodeType":"YulIdentifier","src":"5198:9:44"},{"name":"offset","nativeSrc":"5209:6:44","nodeType":"YulIdentifier","src":"5209:6:44"}],"functionName":{"name":"add","nativeSrc":"5194:3:44","nodeType":"YulIdentifier","src":"5194:3:44"},"nativeSrc":"5194:22:44","nodeType":"YulFunctionCall","src":"5194:22:44"},{"name":"dataEnd","nativeSrc":"5218:7:44","nodeType":"YulIdentifier","src":"5218:7:44"}],"functionName":{"name":"abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"5119:74:44","nodeType":"YulIdentifier","src":"5119:74:44"},"nativeSrc":"5119:107:44","nodeType":"YulFunctionCall","src":"5119:107:44"},"variableNames":[{"name":"value3","nativeSrc":"5101:6:44","nodeType":"YulIdentifier","src":"5101:6:44"},{"name":"value4","nativeSrc":"5109:6:44","nodeType":"YulIdentifier","src":"5109:6:44"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"4110:1133:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4245:9:44","nodeType":"YulTypedName","src":"4245:9:44","type":""},{"name":"dataEnd","nativeSrc":"4256:7:44","nodeType":"YulTypedName","src":"4256:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4268:6:44","nodeType":"YulTypedName","src":"4268:6:44","type":""},{"name":"value1","nativeSrc":"4276:6:44","nodeType":"YulTypedName","src":"4276:6:44","type":""},{"name":"value2","nativeSrc":"4284:6:44","nodeType":"YulTypedName","src":"4284:6:44","type":""},{"name":"value3","nativeSrc":"4292:6:44","nodeType":"YulTypedName","src":"4292:6:44","type":""},{"name":"value4","nativeSrc":"4300:6:44","nodeType":"YulTypedName","src":"4300:6:44","type":""}],"src":"4110:1133:44"},{"body":{"nativeSrc":"5281:28:44","nodeType":"YulBlock","src":"5281:28:44","statements":[{"nativeSrc":"5291:12:44","nodeType":"YulAssignment","src":"5291:12:44","value":{"name":"value","nativeSrc":"5298:5:44","nodeType":"YulIdentifier","src":"5298:5:44"},"variableNames":[{"name":"ret","nativeSrc":"5291:3:44","nodeType":"YulIdentifier","src":"5291:3:44"}]}]},"name":"identity","nativeSrc":"5249:60:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5267:5:44","nodeType":"YulTypedName","src":"5267:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5277:3:44","nodeType":"YulTypedName","src":"5277:3:44","type":""}],"src":"5249:60:44"},{"body":{"nativeSrc":"5375:82:44","nodeType":"YulBlock","src":"5375:82:44","statements":[{"nativeSrc":"5385:66:44","nodeType":"YulAssignment","src":"5385:66:44","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5443:5:44","nodeType":"YulIdentifier","src":"5443:5:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5425:17:44","nodeType":"YulIdentifier","src":"5425:17:44"},"nativeSrc":"5425:24:44","nodeType":"YulFunctionCall","src":"5425:24:44"}],"functionName":{"name":"identity","nativeSrc":"5416:8:44","nodeType":"YulIdentifier","src":"5416:8:44"},"nativeSrc":"5416:34:44","nodeType":"YulFunctionCall","src":"5416:34:44"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5398:17:44","nodeType":"YulIdentifier","src":"5398:17:44"},"nativeSrc":"5398:53:44","nodeType":"YulFunctionCall","src":"5398:53:44"},"variableNames":[{"name":"converted","nativeSrc":"5385:9:44","nodeType":"YulIdentifier","src":"5385:9:44"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5315:142:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5355:5:44","nodeType":"YulTypedName","src":"5355:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5365:9:44","nodeType":"YulTypedName","src":"5365:9:44","type":""}],"src":"5315:142:44"},{"body":{"nativeSrc":"5523:66:44","nodeType":"YulBlock","src":"5523:66:44","statements":[{"nativeSrc":"5533:50:44","nodeType":"YulAssignment","src":"5533:50:44","value":{"arguments":[{"name":"value","nativeSrc":"5577:5:44","nodeType":"YulIdentifier","src":"5577:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5546:30:44","nodeType":"YulIdentifier","src":"5546:30:44"},"nativeSrc":"5546:37:44","nodeType":"YulFunctionCall","src":"5546:37:44"},"variableNames":[{"name":"converted","nativeSrc":"5533:9:44","nodeType":"YulIdentifier","src":"5533:9:44"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"5463:126:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5503:5:44","nodeType":"YulTypedName","src":"5503:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5513:9:44","nodeType":"YulTypedName","src":"5513:9:44","type":""}],"src":"5463:126:44"},{"body":{"nativeSrc":"5676:66:44","nodeType":"YulBlock","src":"5676:66:44","statements":[{"nativeSrc":"5686:50:44","nodeType":"YulAssignment","src":"5686:50:44","value":{"arguments":[{"name":"value","nativeSrc":"5730:5:44","nodeType":"YulIdentifier","src":"5730:5:44"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5699:30:44","nodeType":"YulIdentifier","src":"5699:30:44"},"nativeSrc":"5699:37:44","nodeType":"YulFunctionCall","src":"5699:37:44"},"variableNames":[{"name":"converted","nativeSrc":"5686:9:44","nodeType":"YulIdentifier","src":"5686:9:44"}]}]},"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"5595:147:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5656:5:44","nodeType":"YulTypedName","src":"5656:5:44","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5666:9:44","nodeType":"YulTypedName","src":"5666:9:44","type":""}],"src":"5595:147:44"},{"body":{"nativeSrc":"5834:87:44","nodeType":"YulBlock","src":"5834:87:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5851:3:44","nodeType":"YulIdentifier","src":"5851:3:44"},{"arguments":[{"name":"value","nativeSrc":"5908:5:44","nodeType":"YulIdentifier","src":"5908:5:44"}],"functionName":{"name":"convert_t_contract$_ISciRegistry_$8112_to_t_address","nativeSrc":"5856:51:44","nodeType":"YulIdentifier","src":"5856:51:44"},"nativeSrc":"5856:58:44","nodeType":"YulFunctionCall","src":"5856:58:44"}],"functionName":{"name":"mstore","nativeSrc":"5844:6:44","nodeType":"YulIdentifier","src":"5844:6:44"},"nativeSrc":"5844:71:44","nodeType":"YulFunctionCall","src":"5844:71:44"},"nativeSrc":"5844:71:44","nodeType":"YulExpressionStatement","src":"5844:71:44"}]},"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"5748:173:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5822:5:44","nodeType":"YulTypedName","src":"5822:5:44","type":""},{"name":"pos","nativeSrc":"5829:3:44","nodeType":"YulTypedName","src":"5829:3:44","type":""}],"src":"5748:173:44"},{"body":{"nativeSrc":"6046:145:44","nodeType":"YulBlock","src":"6046:145:44","statements":[{"nativeSrc":"6056:26:44","nodeType":"YulAssignment","src":"6056:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"6068:9:44","nodeType":"YulIdentifier","src":"6068:9:44"},{"kind":"number","nativeSrc":"6079:2:44","nodeType":"YulLiteral","src":"6079:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6064:3:44","nodeType":"YulIdentifier","src":"6064:3:44"},"nativeSrc":"6064:18:44","nodeType":"YulFunctionCall","src":"6064:18:44"},"variableNames":[{"name":"tail","nativeSrc":"6056:4:44","nodeType":"YulIdentifier","src":"6056:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6157:6:44","nodeType":"YulIdentifier","src":"6157:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"6170:9:44","nodeType":"YulIdentifier","src":"6170:9:44"},{"kind":"number","nativeSrc":"6181:1:44","nodeType":"YulLiteral","src":"6181:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6166:3:44","nodeType":"YulIdentifier","src":"6166:3:44"},"nativeSrc":"6166:17:44","nodeType":"YulFunctionCall","src":"6166:17:44"}],"functionName":{"name":"abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack","nativeSrc":"6092:64:44","nodeType":"YulIdentifier","src":"6092:64:44"},"nativeSrc":"6092:92:44","nodeType":"YulFunctionCall","src":"6092:92:44"},"nativeSrc":"6092:92:44","nodeType":"YulExpressionStatement","src":"6092:92:44"}]},"name":"abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed","nativeSrc":"5927:264:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6018:9:44","nodeType":"YulTypedName","src":"6018:9:44","type":""},{"name":"value0","nativeSrc":"6030:6:44","nodeType":"YulTypedName","src":"6030:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6041:4:44","nodeType":"YulTypedName","src":"6041:4:44","type":""}],"src":"5927:264:44"},{"body":{"nativeSrc":"6225:152:44","nodeType":"YulBlock","src":"6225:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6242:1:44","nodeType":"YulLiteral","src":"6242:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6245:77:44","nodeType":"YulLiteral","src":"6245:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6235:6:44","nodeType":"YulIdentifier","src":"6235:6:44"},"nativeSrc":"6235:88:44","nodeType":"YulFunctionCall","src":"6235:88:44"},"nativeSrc":"6235:88:44","nodeType":"YulExpressionStatement","src":"6235:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6339:1:44","nodeType":"YulLiteral","src":"6339:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"6342:4:44","nodeType":"YulLiteral","src":"6342:4:44","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"6332:6:44","nodeType":"YulIdentifier","src":"6332:6:44"},"nativeSrc":"6332:15:44","nodeType":"YulFunctionCall","src":"6332:15:44"},"nativeSrc":"6332:15:44","nodeType":"YulExpressionStatement","src":"6332:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6363:1:44","nodeType":"YulLiteral","src":"6363:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6366:4:44","nodeType":"YulLiteral","src":"6366:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6356:6:44","nodeType":"YulIdentifier","src":"6356:6:44"},"nativeSrc":"6356:15:44","nodeType":"YulFunctionCall","src":"6356:15:44"},"nativeSrc":"6356:15:44","nodeType":"YulExpressionStatement","src":"6356:15:44"}]},"name":"panic_error_0x32","nativeSrc":"6197:180:44","nodeType":"YulFunctionDefinition","src":"6197:180:44"},{"body":{"nativeSrc":"6472:28:44","nodeType":"YulBlock","src":"6472:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6489:1:44","nodeType":"YulLiteral","src":"6489:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6492:1:44","nodeType":"YulLiteral","src":"6492:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6482:6:44","nodeType":"YulIdentifier","src":"6482:6:44"},"nativeSrc":"6482:12:44","nodeType":"YulFunctionCall","src":"6482:12:44"},"nativeSrc":"6482:12:44","nodeType":"YulExpressionStatement","src":"6482:12:44"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"6383:117:44","nodeType":"YulFunctionDefinition","src":"6383:117:44"},{"body":{"nativeSrc":"6595:28:44","nodeType":"YulBlock","src":"6595:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6612:1:44","nodeType":"YulLiteral","src":"6612:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6615:1:44","nodeType":"YulLiteral","src":"6615:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6605:6:44","nodeType":"YulIdentifier","src":"6605:6:44"},"nativeSrc":"6605:12:44","nodeType":"YulFunctionCall","src":"6605:12:44"},"nativeSrc":"6605:12:44","nodeType":"YulExpressionStatement","src":"6605:12:44"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"6506:117:44","nodeType":"YulFunctionDefinition","src":"6506:117:44"},{"body":{"nativeSrc":"6718:28:44","nodeType":"YulBlock","src":"6718:28:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6735:1:44","nodeType":"YulLiteral","src":"6735:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"6738:1:44","nodeType":"YulLiteral","src":"6738:1:44","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6728:6:44","nodeType":"YulIdentifier","src":"6728:6:44"},"nativeSrc":"6728:12:44","nodeType":"YulFunctionCall","src":"6728:12:44"},"nativeSrc":"6728:12:44","nodeType":"YulExpressionStatement","src":"6728:12:44"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"6629:117:44","nodeType":"YulFunctionDefinition","src":"6629:117:44"},{"body":{"nativeSrc":"6858:634:44","nodeType":"YulBlock","src":"6858:634:44","statements":[{"nativeSrc":"6868:51:44","nodeType":"YulVariableDeclaration","src":"6868:51:44","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"6907:11:44","nodeType":"YulIdentifier","src":"6907:11:44"}],"functionName":{"name":"calldataload","nativeSrc":"6894:12:44","nodeType":"YulIdentifier","src":"6894:12:44"},"nativeSrc":"6894:25:44","nodeType":"YulFunctionCall","src":"6894:25:44"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"6872:18:44","nodeType":"YulTypedName","src":"6872:18:44","type":""}]},{"body":{"nativeSrc":"7013:83:44","nodeType":"YulBlock","src":"7013:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"7015:77:44","nodeType":"YulIdentifier","src":"7015:77:44"},"nativeSrc":"7015:79:44","nodeType":"YulFunctionCall","src":"7015:79:44"},"nativeSrc":"7015:79:44","nodeType":"YulExpressionStatement","src":"7015:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"6942:18:44","nodeType":"YulIdentifier","src":"6942:18:44"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"6970:12:44","nodeType":"YulIdentifier","src":"6970:12:44"},"nativeSrc":"6970:14:44","nodeType":"YulFunctionCall","src":"6970:14:44"},{"name":"base_ref","nativeSrc":"6986:8:44","nodeType":"YulIdentifier","src":"6986:8:44"}],"functionName":{"name":"sub","nativeSrc":"6966:3:44","nodeType":"YulIdentifier","src":"6966:3:44"},"nativeSrc":"6966:29:44","nodeType":"YulFunctionCall","src":"6966:29:44"},{"arguments":[{"kind":"number","nativeSrc":"7001:4:44","nodeType":"YulLiteral","src":"7001:4:44","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7007:1:44","nodeType":"YulLiteral","src":"7007:1:44","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"6997:3:44","nodeType":"YulIdentifier","src":"6997:3:44"},"nativeSrc":"6997:12:44","nodeType":"YulFunctionCall","src":"6997:12:44"}],"functionName":{"name":"sub","nativeSrc":"6962:3:44","nodeType":"YulIdentifier","src":"6962:3:44"},"nativeSrc":"6962:48:44","nodeType":"YulFunctionCall","src":"6962:48:44"}],"functionName":{"name":"slt","nativeSrc":"6938:3:44","nodeType":"YulIdentifier","src":"6938:3:44"},"nativeSrc":"6938:73:44","nodeType":"YulFunctionCall","src":"6938:73:44"}],"functionName":{"name":"iszero","nativeSrc":"6931:6:44","nodeType":"YulIdentifier","src":"6931:6:44"},"nativeSrc":"6931:81:44","nodeType":"YulFunctionCall","src":"6931:81:44"},"nativeSrc":"6928:168:44","nodeType":"YulIf","src":"6928:168:44"},{"nativeSrc":"7105:41:44","nodeType":"YulAssignment","src":"7105:41:44","value":{"arguments":[{"name":"base_ref","nativeSrc":"7117:8:44","nodeType":"YulIdentifier","src":"7117:8:44"},{"name":"rel_offset_of_tail","nativeSrc":"7127:18:44","nodeType":"YulIdentifier","src":"7127:18:44"}],"functionName":{"name":"add","nativeSrc":"7113:3:44","nodeType":"YulIdentifier","src":"7113:3:44"},"nativeSrc":"7113:33:44","nodeType":"YulFunctionCall","src":"7113:33:44"},"variableNames":[{"name":"addr","nativeSrc":"7105:4:44","nodeType":"YulIdentifier","src":"7105:4:44"}]},{"nativeSrc":"7156:28:44","nodeType":"YulAssignment","src":"7156:28:44","value":{"arguments":[{"name":"addr","nativeSrc":"7179:4:44","nodeType":"YulIdentifier","src":"7179:4:44"}],"functionName":{"name":"calldataload","nativeSrc":"7166:12:44","nodeType":"YulIdentifier","src":"7166:12:44"},"nativeSrc":"7166:18:44","nodeType":"YulFunctionCall","src":"7166:18:44"},"variableNames":[{"name":"length","nativeSrc":"7156:6:44","nodeType":"YulIdentifier","src":"7156:6:44"}]},{"body":{"nativeSrc":"7227:83:44","nodeType":"YulBlock","src":"7227:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"7229:77:44","nodeType":"YulIdentifier","src":"7229:77:44"},"nativeSrc":"7229:79:44","nodeType":"YulFunctionCall","src":"7229:79:44"},"nativeSrc":"7229:79:44","nodeType":"YulExpressionStatement","src":"7229:79:44"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7199:6:44","nodeType":"YulIdentifier","src":"7199:6:44"},{"kind":"number","nativeSrc":"7207:18:44","nodeType":"YulLiteral","src":"7207:18:44","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7196:2:44","nodeType":"YulIdentifier","src":"7196:2:44"},"nativeSrc":"7196:30:44","nodeType":"YulFunctionCall","src":"7196:30:44"},"nativeSrc":"7193:117:44","nodeType":"YulIf","src":"7193:117:44"},{"nativeSrc":"7319:21:44","nodeType":"YulAssignment","src":"7319:21:44","value":{"arguments":[{"name":"addr","nativeSrc":"7331:4:44","nodeType":"YulIdentifier","src":"7331:4:44"},{"kind":"number","nativeSrc":"7337:2:44","nodeType":"YulLiteral","src":"7337:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7327:3:44","nodeType":"YulIdentifier","src":"7327:3:44"},"nativeSrc":"7327:13:44","nodeType":"YulFunctionCall","src":"7327:13:44"},"variableNames":[{"name":"addr","nativeSrc":"7319:4:44","nodeType":"YulIdentifier","src":"7319:4:44"}]},{"body":{"nativeSrc":"7402:83:44","nodeType":"YulBlock","src":"7402:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"7404:77:44","nodeType":"YulIdentifier","src":"7404:77:44"},"nativeSrc":"7404:79:44","nodeType":"YulFunctionCall","src":"7404:79:44"},"nativeSrc":"7404:79:44","nodeType":"YulExpressionStatement","src":"7404:79:44"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"7356:4:44","nodeType":"YulIdentifier","src":"7356:4:44"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"7366:12:44","nodeType":"YulIdentifier","src":"7366:12:44"},"nativeSrc":"7366:14:44","nodeType":"YulFunctionCall","src":"7366:14:44"},{"arguments":[{"name":"length","nativeSrc":"7386:6:44","nodeType":"YulIdentifier","src":"7386:6:44"},{"kind":"number","nativeSrc":"7394:4:44","nodeType":"YulLiteral","src":"7394:4:44","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7382:3:44","nodeType":"YulIdentifier","src":"7382:3:44"},"nativeSrc":"7382:17:44","nodeType":"YulFunctionCall","src":"7382:17:44"}],"functionName":{"name":"sub","nativeSrc":"7362:3:44","nodeType":"YulIdentifier","src":"7362:3:44"},"nativeSrc":"7362:38:44","nodeType":"YulFunctionCall","src":"7362:38:44"}],"functionName":{"name":"sgt","nativeSrc":"7352:3:44","nodeType":"YulIdentifier","src":"7352:3:44"},"nativeSrc":"7352:49:44","nodeType":"YulFunctionCall","src":"7352:49:44"},"nativeSrc":"7349:136:44","nodeType":"YulIf","src":"7349:136:44"}]},"name":"access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"6752:740:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"6819:8:44","nodeType":"YulTypedName","src":"6819:8:44","type":""},{"name":"ptr_to_tail","nativeSrc":"6829:11:44","nodeType":"YulTypedName","src":"6829:11:44","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"6845:4:44","nodeType":"YulTypedName","src":"6845:4:44","type":""},{"name":"length","nativeSrc":"6851:6:44","nodeType":"YulTypedName","src":"6851:6:44","type":""}],"src":"6752:740:44"},{"body":{"nativeSrc":"7564:263:44","nodeType":"YulBlock","src":"7564:263:44","statements":[{"body":{"nativeSrc":"7610:83:44","nodeType":"YulBlock","src":"7610:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7612:77:44","nodeType":"YulIdentifier","src":"7612:77:44"},"nativeSrc":"7612:79:44","nodeType":"YulFunctionCall","src":"7612:79:44"},"nativeSrc":"7612:79:44","nodeType":"YulExpressionStatement","src":"7612:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7585:7:44","nodeType":"YulIdentifier","src":"7585:7:44"},{"name":"headStart","nativeSrc":"7594:9:44","nodeType":"YulIdentifier","src":"7594:9:44"}],"functionName":{"name":"sub","nativeSrc":"7581:3:44","nodeType":"YulIdentifier","src":"7581:3:44"},"nativeSrc":"7581:23:44","nodeType":"YulFunctionCall","src":"7581:23:44"},{"kind":"number","nativeSrc":"7606:2:44","nodeType":"YulLiteral","src":"7606:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7577:3:44","nodeType":"YulIdentifier","src":"7577:3:44"},"nativeSrc":"7577:32:44","nodeType":"YulFunctionCall","src":"7577:32:44"},"nativeSrc":"7574:119:44","nodeType":"YulIf","src":"7574:119:44"},{"nativeSrc":"7703:117:44","nodeType":"YulBlock","src":"7703:117:44","statements":[{"nativeSrc":"7718:15:44","nodeType":"YulVariableDeclaration","src":"7718:15:44","value":{"kind":"number","nativeSrc":"7732:1:44","nodeType":"YulLiteral","src":"7732:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7722:6:44","nodeType":"YulTypedName","src":"7722:6:44","type":""}]},{"nativeSrc":"7747:63:44","nodeType":"YulAssignment","src":"7747:63:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7782:9:44","nodeType":"YulIdentifier","src":"7782:9:44"},{"name":"offset","nativeSrc":"7793:6:44","nodeType":"YulIdentifier","src":"7793:6:44"}],"functionName":{"name":"add","nativeSrc":"7778:3:44","nodeType":"YulIdentifier","src":"7778:3:44"},"nativeSrc":"7778:22:44","nodeType":"YulFunctionCall","src":"7778:22:44"},{"name":"dataEnd","nativeSrc":"7802:7:44","nodeType":"YulIdentifier","src":"7802:7:44"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7757:20:44","nodeType":"YulIdentifier","src":"7757:20:44"},"nativeSrc":"7757:53:44","nodeType":"YulFunctionCall","src":"7757:53:44"},"variableNames":[{"name":"value0","nativeSrc":"7747:6:44","nodeType":"YulIdentifier","src":"7747:6:44"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7498:329:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7534:9:44","nodeType":"YulTypedName","src":"7534:9:44","type":""},{"name":"dataEnd","nativeSrc":"7545:7:44","nodeType":"YulTypedName","src":"7545:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7557:6:44","nodeType":"YulTypedName","src":"7557:6:44","type":""}],"src":"7498:329:44"},{"body":{"nativeSrc":"7898:53:44","nodeType":"YulBlock","src":"7898:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7915:3:44","nodeType":"YulIdentifier","src":"7915:3:44"},{"arguments":[{"name":"value","nativeSrc":"7938:5:44","nodeType":"YulIdentifier","src":"7938:5:44"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7920:17:44","nodeType":"YulIdentifier","src":"7920:17:44"},"nativeSrc":"7920:24:44","nodeType":"YulFunctionCall","src":"7920:24:44"}],"functionName":{"name":"mstore","nativeSrc":"7908:6:44","nodeType":"YulIdentifier","src":"7908:6:44"},"nativeSrc":"7908:37:44","nodeType":"YulFunctionCall","src":"7908:37:44"},"nativeSrc":"7908:37:44","nodeType":"YulExpressionStatement","src":"7908:37:44"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7833:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7886:5:44","nodeType":"YulTypedName","src":"7886:5:44","type":""},{"name":"pos","nativeSrc":"7893:3:44","nodeType":"YulTypedName","src":"7893:3:44","type":""}],"src":"7833:118:44"},{"body":{"nativeSrc":"8055:124:44","nodeType":"YulBlock","src":"8055:124:44","statements":[{"nativeSrc":"8065:26:44","nodeType":"YulAssignment","src":"8065:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8077:9:44","nodeType":"YulIdentifier","src":"8077:9:44"},{"kind":"number","nativeSrc":"8088:2:44","nodeType":"YulLiteral","src":"8088:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8073:3:44","nodeType":"YulIdentifier","src":"8073:3:44"},"nativeSrc":"8073:18:44","nodeType":"YulFunctionCall","src":"8073:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8065:4:44","nodeType":"YulIdentifier","src":"8065:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8145:6:44","nodeType":"YulIdentifier","src":"8145:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8158:9:44","nodeType":"YulIdentifier","src":"8158:9:44"},{"kind":"number","nativeSrc":"8169:1:44","nodeType":"YulLiteral","src":"8169:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8154:3:44","nodeType":"YulIdentifier","src":"8154:3:44"},"nativeSrc":"8154:17:44","nodeType":"YulFunctionCall","src":"8154:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8101:43:44","nodeType":"YulIdentifier","src":"8101:43:44"},"nativeSrc":"8101:71:44","nodeType":"YulFunctionCall","src":"8101:71:44"},"nativeSrc":"8101:71:44","nodeType":"YulExpressionStatement","src":"8101:71:44"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7957:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8027:9:44","nodeType":"YulTypedName","src":"8027:9:44","type":""},{"name":"value0","nativeSrc":"8039:6:44","nodeType":"YulTypedName","src":"8039:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8050:4:44","nodeType":"YulTypedName","src":"8050:4:44","type":""}],"src":"7957:222:44"},{"body":{"nativeSrc":"8213:152:44","nodeType":"YulBlock","src":"8213:152:44","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8230:1:44","nodeType":"YulLiteral","src":"8230:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"8233:77:44","nodeType":"YulLiteral","src":"8233:77:44","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8223:6:44","nodeType":"YulIdentifier","src":"8223:6:44"},"nativeSrc":"8223:88:44","nodeType":"YulFunctionCall","src":"8223:88:44"},"nativeSrc":"8223:88:44","nodeType":"YulExpressionStatement","src":"8223:88:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8327:1:44","nodeType":"YulLiteral","src":"8327:1:44","type":"","value":"4"},{"kind":"number","nativeSrc":"8330:4:44","nodeType":"YulLiteral","src":"8330:4:44","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8320:6:44","nodeType":"YulIdentifier","src":"8320:6:44"},"nativeSrc":"8320:15:44","nodeType":"YulFunctionCall","src":"8320:15:44"},"nativeSrc":"8320:15:44","nodeType":"YulExpressionStatement","src":"8320:15:44"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8351:1:44","nodeType":"YulLiteral","src":"8351:1:44","type":"","value":"0"},{"kind":"number","nativeSrc":"8354:4:44","nodeType":"YulLiteral","src":"8354:4:44","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8344:6:44","nodeType":"YulIdentifier","src":"8344:6:44"},"nativeSrc":"8344:15:44","nodeType":"YulFunctionCall","src":"8344:15:44"},"nativeSrc":"8344:15:44","nodeType":"YulExpressionStatement","src":"8344:15:44"}]},"name":"panic_error_0x11","nativeSrc":"8185:180:44","nodeType":"YulFunctionDefinition","src":"8185:180:44"},{"body":{"nativeSrc":"8414:190:44","nodeType":"YulBlock","src":"8414:190:44","statements":[{"nativeSrc":"8424:33:44","nodeType":"YulAssignment","src":"8424:33:44","value":{"arguments":[{"name":"value","nativeSrc":"8451:5:44","nodeType":"YulIdentifier","src":"8451:5:44"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8433:17:44","nodeType":"YulIdentifier","src":"8433:17:44"},"nativeSrc":"8433:24:44","nodeType":"YulFunctionCall","src":"8433:24:44"},"variableNames":[{"name":"value","nativeSrc":"8424:5:44","nodeType":"YulIdentifier","src":"8424:5:44"}]},{"body":{"nativeSrc":"8547:22:44","nodeType":"YulBlock","src":"8547:22:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8549:16:44","nodeType":"YulIdentifier","src":"8549:16:44"},"nativeSrc":"8549:18:44","nodeType":"YulFunctionCall","src":"8549:18:44"},"nativeSrc":"8549:18:44","nodeType":"YulExpressionStatement","src":"8549:18:44"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"8472:5:44","nodeType":"YulIdentifier","src":"8472:5:44"},{"kind":"number","nativeSrc":"8479:66:44","nodeType":"YulLiteral","src":"8479:66:44","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"8469:2:44","nodeType":"YulIdentifier","src":"8469:2:44"},"nativeSrc":"8469:77:44","nodeType":"YulFunctionCall","src":"8469:77:44"},"nativeSrc":"8466:103:44","nodeType":"YulIf","src":"8466:103:44"},{"nativeSrc":"8578:20:44","nodeType":"YulAssignment","src":"8578:20:44","value":{"arguments":[{"name":"value","nativeSrc":"8589:5:44","nodeType":"YulIdentifier","src":"8589:5:44"},{"kind":"number","nativeSrc":"8596:1:44","nodeType":"YulLiteral","src":"8596:1:44","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8585:3:44","nodeType":"YulIdentifier","src":"8585:3:44"},"nativeSrc":"8585:13:44","nodeType":"YulFunctionCall","src":"8585:13:44"},"variableNames":[{"name":"ret","nativeSrc":"8578:3:44","nodeType":"YulIdentifier","src":"8578:3:44"}]}]},"name":"increment_t_uint256","nativeSrc":"8371:233:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8400:5:44","nodeType":"YulTypedName","src":"8400:5:44","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"8410:3:44","nodeType":"YulTypedName","src":"8410:3:44","type":""}],"src":"8371:233:44"},{"body":{"nativeSrc":"8675:53:44","nodeType":"YulBlock","src":"8675:53:44","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8692:3:44","nodeType":"YulIdentifier","src":"8692:3:44"},{"arguments":[{"name":"value","nativeSrc":"8715:5:44","nodeType":"YulIdentifier","src":"8715:5:44"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"8697:17:44","nodeType":"YulIdentifier","src":"8697:17:44"},"nativeSrc":"8697:24:44","nodeType":"YulFunctionCall","src":"8697:24:44"}],"functionName":{"name":"mstore","nativeSrc":"8685:6:44","nodeType":"YulIdentifier","src":"8685:6:44"},"nativeSrc":"8685:37:44","nodeType":"YulFunctionCall","src":"8685:37:44"},"nativeSrc":"8685:37:44","nodeType":"YulExpressionStatement","src":"8685:37:44"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8610:118:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8663:5:44","nodeType":"YulTypedName","src":"8663:5:44","type":""},{"name":"pos","nativeSrc":"8670:3:44","nodeType":"YulTypedName","src":"8670:3:44","type":""}],"src":"8610:118:44"},{"body":{"nativeSrc":"8832:124:44","nodeType":"YulBlock","src":"8832:124:44","statements":[{"nativeSrc":"8842:26:44","nodeType":"YulAssignment","src":"8842:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"8854:9:44","nodeType":"YulIdentifier","src":"8854:9:44"},{"kind":"number","nativeSrc":"8865:2:44","nodeType":"YulLiteral","src":"8865:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8850:3:44","nodeType":"YulIdentifier","src":"8850:3:44"},"nativeSrc":"8850:18:44","nodeType":"YulFunctionCall","src":"8850:18:44"},"variableNames":[{"name":"tail","nativeSrc":"8842:4:44","nodeType":"YulIdentifier","src":"8842:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8922:6:44","nodeType":"YulIdentifier","src":"8922:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"8935:9:44","nodeType":"YulIdentifier","src":"8935:9:44"},{"kind":"number","nativeSrc":"8946:1:44","nodeType":"YulLiteral","src":"8946:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8931:3:44","nodeType":"YulIdentifier","src":"8931:3:44"},"nativeSrc":"8931:17:44","nodeType":"YulFunctionCall","src":"8931:17:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8878:43:44","nodeType":"YulIdentifier","src":"8878:43:44"},"nativeSrc":"8878:71:44","nodeType":"YulFunctionCall","src":"8878:71:44"},"nativeSrc":"8878:71:44","nodeType":"YulExpressionStatement","src":"8878:71:44"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"8734:222:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8804:9:44","nodeType":"YulTypedName","src":"8804:9:44","type":""},{"name":"value0","nativeSrc":"8816:6:44","nodeType":"YulTypedName","src":"8816:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8827:4:44","nodeType":"YulTypedName","src":"8827:4:44","type":""}],"src":"8734:222:44"},{"body":{"nativeSrc":"9025:80:44","nodeType":"YulBlock","src":"9025:80:44","statements":[{"nativeSrc":"9035:22:44","nodeType":"YulAssignment","src":"9035:22:44","value":{"arguments":[{"name":"offset","nativeSrc":"9050:6:44","nodeType":"YulIdentifier","src":"9050:6:44"}],"functionName":{"name":"mload","nativeSrc":"9044:5:44","nodeType":"YulIdentifier","src":"9044:5:44"},"nativeSrc":"9044:13:44","nodeType":"YulFunctionCall","src":"9044:13:44"},"variableNames":[{"name":"value","nativeSrc":"9035:5:44","nodeType":"YulIdentifier","src":"9035:5:44"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9093:5:44","nodeType":"YulIdentifier","src":"9093:5:44"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"9066:26:44","nodeType":"YulIdentifier","src":"9066:26:44"},"nativeSrc":"9066:33:44","nodeType":"YulFunctionCall","src":"9066:33:44"},"nativeSrc":"9066:33:44","nodeType":"YulExpressionStatement","src":"9066:33:44"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"8962:143:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9003:6:44","nodeType":"YulTypedName","src":"9003:6:44","type":""},{"name":"end","nativeSrc":"9011:3:44","nodeType":"YulTypedName","src":"9011:3:44","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9019:5:44","nodeType":"YulTypedName","src":"9019:5:44","type":""}],"src":"8962:143:44"},{"body":{"nativeSrc":"9188:274:44","nodeType":"YulBlock","src":"9188:274:44","statements":[{"body":{"nativeSrc":"9234:83:44","nodeType":"YulBlock","src":"9234:83:44","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9236:77:44","nodeType":"YulIdentifier","src":"9236:77:44"},"nativeSrc":"9236:79:44","nodeType":"YulFunctionCall","src":"9236:79:44"},"nativeSrc":"9236:79:44","nodeType":"YulExpressionStatement","src":"9236:79:44"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9209:7:44","nodeType":"YulIdentifier","src":"9209:7:44"},{"name":"headStart","nativeSrc":"9218:9:44","nodeType":"YulIdentifier","src":"9218:9:44"}],"functionName":{"name":"sub","nativeSrc":"9205:3:44","nodeType":"YulIdentifier","src":"9205:3:44"},"nativeSrc":"9205:23:44","nodeType":"YulFunctionCall","src":"9205:23:44"},{"kind":"number","nativeSrc":"9230:2:44","nodeType":"YulLiteral","src":"9230:2:44","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9201:3:44","nodeType":"YulIdentifier","src":"9201:3:44"},"nativeSrc":"9201:32:44","nodeType":"YulFunctionCall","src":"9201:32:44"},"nativeSrc":"9198:119:44","nodeType":"YulIf","src":"9198:119:44"},{"nativeSrc":"9327:128:44","nodeType":"YulBlock","src":"9327:128:44","statements":[{"nativeSrc":"9342:15:44","nodeType":"YulVariableDeclaration","src":"9342:15:44","value":{"kind":"number","nativeSrc":"9356:1:44","nodeType":"YulLiteral","src":"9356:1:44","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9346:6:44","nodeType":"YulTypedName","src":"9346:6:44","type":""}]},{"nativeSrc":"9371:74:44","nodeType":"YulAssignment","src":"9371:74:44","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9417:9:44","nodeType":"YulIdentifier","src":"9417:9:44"},{"name":"offset","nativeSrc":"9428:6:44","nodeType":"YulIdentifier","src":"9428:6:44"}],"functionName":{"name":"add","nativeSrc":"9413:3:44","nodeType":"YulIdentifier","src":"9413:3:44"},"nativeSrc":"9413:22:44","nodeType":"YulFunctionCall","src":"9413:22:44"},{"name":"dataEnd","nativeSrc":"9437:7:44","nodeType":"YulIdentifier","src":"9437:7:44"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"9381:31:44","nodeType":"YulIdentifier","src":"9381:31:44"},"nativeSrc":"9381:64:44","nodeType":"YulFunctionCall","src":"9381:64:44"},"variableNames":[{"name":"value0","nativeSrc":"9371:6:44","nodeType":"YulIdentifier","src":"9371:6:44"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"9111:351:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9158:9:44","nodeType":"YulTypedName","src":"9158:9:44","type":""},{"name":"dataEnd","nativeSrc":"9169:7:44","nodeType":"YulTypedName","src":"9169:7:44","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9181:6:44","nodeType":"YulTypedName","src":"9181:6:44","type":""}],"src":"9111:351:44"},{"body":{"nativeSrc":"9594:206:44","nodeType":"YulBlock","src":"9594:206:44","statements":[{"nativeSrc":"9604:26:44","nodeType":"YulAssignment","src":"9604:26:44","value":{"arguments":[{"name":"headStart","nativeSrc":"9616:9:44","nodeType":"YulIdentifier","src":"9616:9:44"},{"kind":"number","nativeSrc":"9627:2:44","nodeType":"YulLiteral","src":"9627:2:44","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9612:3:44","nodeType":"YulIdentifier","src":"9612:3:44"},"nativeSrc":"9612:18:44","nodeType":"YulFunctionCall","src":"9612:18:44"},"variableNames":[{"name":"tail","nativeSrc":"9604:4:44","nodeType":"YulIdentifier","src":"9604:4:44"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9684:6:44","nodeType":"YulIdentifier","src":"9684:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9697:9:44","nodeType":"YulIdentifier","src":"9697:9:44"},{"kind":"number","nativeSrc":"9708:1:44","nodeType":"YulLiteral","src":"9708:1:44","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9693:3:44","nodeType":"YulIdentifier","src":"9693:3:44"},"nativeSrc":"9693:17:44","nodeType":"YulFunctionCall","src":"9693:17:44"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9640:43:44","nodeType":"YulIdentifier","src":"9640:43:44"},"nativeSrc":"9640:71:44","nodeType":"YulFunctionCall","src":"9640:71:44"},"nativeSrc":"9640:71:44","nodeType":"YulExpressionStatement","src":"9640:71:44"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9765:6:44","nodeType":"YulIdentifier","src":"9765:6:44"},{"arguments":[{"name":"headStart","nativeSrc":"9778:9:44","nodeType":"YulIdentifier","src":"9778:9:44"},{"kind":"number","nativeSrc":"9789:2:44","nodeType":"YulLiteral","src":"9789:2:44","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9774:3:44","nodeType":"YulIdentifier","src":"9774:3:44"},"nativeSrc":"9774:18:44","nodeType":"YulFunctionCall","src":"9774:18:44"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"9721:43:44","nodeType":"YulIdentifier","src":"9721:43:44"},"nativeSrc":"9721:72:44","nodeType":"YulFunctionCall","src":"9721:72:44"},"nativeSrc":"9721:72:44","nodeType":"YulExpressionStatement","src":"9721:72:44"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"9468:332:44","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9558:9:44","nodeType":"YulTypedName","src":"9558:9:44","type":""},{"name":"value1","nativeSrc":"9570:6:44","nodeType":"YulTypedName","src":"9570:6:44","type":""},{"name":"value0","nativeSrc":"9578:6:44","nodeType":"YulTypedName","src":"9578:6:44","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9589:4:44","nodeType":"YulTypedName","src":"9589:4:44","type":""}],"src":"9468:332:44"}]},"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_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\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_bytes32t_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_bytes32(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_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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n        revert(0, 0)\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // address[]\n    function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    // uint256[][]\n    function abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        length := calldataload(offset)\n        if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n        arrayPos := add(offset, 0x20)\n        if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n    }\n\n    function abi_decode_tuple_t_bytes32t_array$_t_address_$dyn_calldata_ptrt_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value1, value2 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value3, value4 := abi_decode_t_array$_t_array$_t_uint256_$dyn_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_ISciRegistry_$8112_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_ISciRegistry_$8112_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_ISciRegistry_$8112__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_ISciRegistry_$8112_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n        revert(0, 0)\n    }\n\n    function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n        revert(0, 0)\n    }\n\n    function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n        revert(0, 0)\n    }\n\n    function access_calldata_tail_t_array$_t_uint256_$dyn_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n        let rel_offset_of_tail := calldataload(ptr_to_tail)\n        if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n        addr := add(base_ref, rel_offset_of_tail)\n\n        length := calldataload(addr)\n        if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n        addr := add(addr, 32)\n        if sgt(addr, sub(calldatasize(), mul(length, 0x20))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\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 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 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 abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_t_address_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address_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_address_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n    }\n\n}\n","id":44,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"7147":[{"length":32,"start":1093},{"length":32,"start":1652}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c8063046852d01461005c5780630f59a4981461008c57806379fb477a146100a85780637b103999146100d857806382ef31d9146100f6575b600080fd5b6100766004803603810190610071919061083e565b610112565b60405161008391906108a0565b60405180910390f35b6100a660048036038101906100a19190610976565b61022a565b005b6100c260048036038101906100bd919061083e565b610411565b6040516100cf91906108a0565b60405180910390f35b6100e0610443565b6040516100ed9190610a6a565b60405180910390f35b610110600480360381019061010b9190610976565b610467565b005b60008060008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050600081146101895780915050610223565b60008086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000205490506000811461021d5780915050610223565b60009150505b9392505050565b3385610236828261065b565b60005b868690508110156104075760005b85858381811061025a57610259610a85565b5b905060200281019061026c9190610ac3565b90508110156103fb57426000808b815260200190815260200160002060008a8a8681811061029d5761029c610a85565b5b90506020020160208101906102b29190610b26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061030157610300610a85565b5b90506020028101906103139190610ac3565b8581811061032457610323610a85565b5b905060200201358152602001908152602001600020819055508787838181106103505761034f610a85565b5b90506020020160208101906103659190610b26565b73ffffffffffffffffffffffffffffffffffffffff1686868481811061038e5761038d610a85565b5b90506020028101906103a09190610ac3565b838181106103b1576103b0610a85565b5b905060200201358a7fc177490b924686771eb8a2b77bee53e5913e624c90b60207d396f81cfe6e7cd0336040516103e89190610b62565b60405180910390a4806001019050610247565b50806001019050610239565b5050505050505050565b600060205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b7f000000000000000000000000000000000000000000000000000000000000000081565b3385610473828261065b565b60005b868690508110156106515760005b85858381811061049757610496610a85565b5b90506020028101906104a99190610ac3565b90508110156106455760008060008b815260200190815260200160002060008a8a868181106104db576104da610a85565b5b90506020020160208101906104f09190610b26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888681811061053f5761053e610a85565b5b90506020028101906105519190610ac3565b8581811061056257610561610a85565b5b9050602002013581526020019081526020016000208190555087878381811061058e5761058d610a85565b5b90506020020160208101906105a39190610b26565b73ffffffffffffffffffffffffffffffffffffffff168686848181106105cc576105cb610a85565b5b90506020028101906105de9190610ac3565b838181106105ef576105ee610a85565b5b905060200201358a7f36be184145fbd476ffe0597f987f89d7490b926e334512a42de54749eee25e75336040516106269190610b62565b60405180910390a48060010190508061063e90610bac565b9050610484565b50806001019050610476565b5050505050505050565b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d26cdd20836040518263ffffffff1660e01b81526004016106cb9190610c03565b602060405180830381865afa1580156106e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070c9190610c33565b73ffffffffffffffffffffffffffffffffffffffff16146107665781816040517f2ebb0ef600000000000000000000000000000000000000000000000000000000815260040161075d929190610c60565b60405180910390fd5b5050565b600080fd5b600080fd5b6000819050919050565b61078781610774565b811461079257600080fd5b50565b6000813590506107a48161077e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107d5826107aa565b9050919050565b6107e5816107ca565b81146107f057600080fd5b50565b600081359050610802816107dc565b92915050565b6000819050919050565b61081b81610808565b811461082657600080fd5b50565b60008135905061083881610812565b92915050565b6000806000606084860312156108575761085661076a565b5b600061086586828701610795565b9350506020610876868287016107f3565b925050604061088786828701610829565b9150509250925092565b61089a81610808565b82525050565b60006020820190506108b56000830184610891565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126108e0576108df6108bb565b5b8235905067ffffffffffffffff8111156108fd576108fc6108c0565b5b602083019150836020820283011115610919576109186108c5565b5b9250929050565b60008083601f840112610936576109356108bb565b5b8235905067ffffffffffffffff811115610953576109526108c0565b5b60208301915083602082028301111561096f5761096e6108c5565b5b9250929050565b6000806000806000606086880312156109925761099161076a565b5b60006109a088828901610795565b955050602086013567ffffffffffffffff8111156109c1576109c061076f565b5b6109cd888289016108ca565b9450945050604086013567ffffffffffffffff8111156109f0576109ef61076f565b5b6109fc88828901610920565b92509250509295509295909350565b6000819050919050565b6000610a30610a2b610a26846107aa565b610a0b565b6107aa565b9050919050565b6000610a4282610a15565b9050919050565b6000610a5482610a37565b9050919050565b610a6481610a49565b82525050565b6000602082019050610a7f6000830184610a5b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112610ae057610adf610ab4565b5b80840192508235915067ffffffffffffffff821115610b0257610b01610ab9565b5b602083019250602082023603831315610b1e57610b1d610abe565b5b509250929050565b600060208284031215610b3c57610b3b61076a565b5b6000610b4a848285016107f3565b91505092915050565b610b5c816107ca565b82525050565b6000602082019050610b776000830184610b53565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bb782610808565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610be957610be8610b7d565b5b600182019050919050565b610bfd81610774565b82525050565b6000602082019050610c186000830184610bf4565b92915050565b600081519050610c2d816107dc565b92915050565b600060208284031215610c4957610c4861076a565b5b6000610c5784828501610c1e565b91505092915050565b6000604082019050610c756000830185610b53565b610c826020830184610bf4565b939250505056fea264697066735822122022c0c17b2cbc5db02001b8e5e67ef586328fbf7d3fe2fa08565b8cdb4fd8e1e764736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46852D0 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0xF59A498 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x79FB477A EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x82EF31D9 EQ PUSH2 0xF6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x112 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA1 SWAP2 SWAP1 PUSH2 0x976 JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x83E JUMP JUMPDEST PUSH2 0x411 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x8A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE0 PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x976 JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x189 JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ PUSH2 0x21D JUMPI DUP1 SWAP2 POP POP PUSH2 0x223 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER DUP6 PUSH2 0x236 DUP3 DUP3 PUSH2 0x65B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x407 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x25A JUMPI PUSH2 0x259 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x3FB JUMPI TIMESTAMP PUSH1 0x0 DUP1 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x29D JUMPI PUSH2 0x29C PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2B2 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x301 JUMPI PUSH2 0x300 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x324 JUMPI PUSH2 0x323 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x350 JUMPI PUSH2 0x34F PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x38E JUMPI PUSH2 0x38D PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x3B1 JUMPI PUSH2 0x3B0 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0xC177490B924686771EB8A2B77BEE53E5913E624C90B60207D396F81CFE6E7CD0 CALLER PUSH1 0x40 MLOAD PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x247 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x239 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP3 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP3 POP SWAP3 POP POP POP SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST CALLER DUP6 PUSH2 0x473 DUP3 DUP3 PUSH2 0x65B JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP7 DUP7 SWAP1 POP DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 JUMPDEST DUP6 DUP6 DUP4 DUP2 DUP2 LT PUSH2 0x497 JUMPI PUSH2 0x496 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x4A9 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST SWAP1 POP DUP2 LT ISZERO PUSH2 0x645 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 DUP11 DUP7 DUP2 DUP2 LT PUSH2 0x4DB JUMPI PUSH2 0x4DA PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4F0 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 DUP9 DUP7 DUP2 DUP2 LT PUSH2 0x53F JUMPI PUSH2 0x53E PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP6 DUP2 DUP2 LT PUSH2 0x562 JUMPI PUSH2 0x561 PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP8 DUP8 DUP4 DUP2 DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0xB26 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x5CC JUMPI PUSH2 0x5CB PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x5DE SWAP2 SWAP1 PUSH2 0xAC3 JUMP JUMPDEST DUP4 DUP2 DUP2 LT PUSH2 0x5EF JUMPI PUSH2 0x5EE PUSH2 0xA85 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP11 PUSH32 0x36BE184145FBD476FFE0597F987F89D7490B926E334512A42DE54749EEE25E75 CALLER PUSH1 0x40 MLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0xB62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x1 ADD SWAP1 POP DUP1 PUSH2 0x63E SWAP1 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP PUSH2 0x484 JUMP JUMPDEST POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x476 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD26CDD20 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6CB SWAP2 SWAP1 PUSH2 0xC03 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x70C SWAP2 SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x766 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x2EBB0EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75D SWAP3 SWAP2 SWAP1 PUSH2 0xC60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x787 DUP2 PUSH2 0x774 JUMP JUMPDEST DUP2 EQ PUSH2 0x792 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7A4 DUP2 PUSH2 0x77E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP3 PUSH2 0x7AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7E5 DUP2 PUSH2 0x7CA JUMP JUMPDEST DUP2 EQ PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x802 DUP2 PUSH2 0x7DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x81B DUP2 PUSH2 0x808 JUMP JUMPDEST DUP2 EQ PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x838 DUP2 PUSH2 0x812 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x865 DUP7 DUP3 DUP8 ADD PUSH2 0x795 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x876 DUP7 DUP3 DUP8 ADD PUSH2 0x7F3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x887 DUP7 DUP3 DUP8 ADD PUSH2 0x829 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x89A DUP2 PUSH2 0x808 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x8B5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x891 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x8E0 JUMPI PUSH2 0x8DF PUSH2 0x8BB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8FD JUMPI PUSH2 0x8FC PUSH2 0x8C0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x919 JUMPI PUSH2 0x918 PUSH2 0x8C5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x936 JUMPI PUSH2 0x935 PUSH2 0x8BB JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x953 JUMPI PUSH2 0x952 PUSH2 0x8C0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x96F JUMPI PUSH2 0x96E PUSH2 0x8C5 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x992 JUMPI PUSH2 0x991 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x9A0 DUP9 DUP3 DUP10 ADD PUSH2 0x795 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9C1 JUMPI PUSH2 0x9C0 PUSH2 0x76F JUMP JUMPDEST JUMPDEST PUSH2 0x9CD DUP9 DUP3 DUP10 ADD PUSH2 0x8CA JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9F0 JUMPI PUSH2 0x9EF PUSH2 0x76F JUMP JUMPDEST JUMPDEST PUSH2 0x9FC DUP9 DUP3 DUP10 ADD PUSH2 0x920 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA30 PUSH2 0xA2B PUSH2 0xA26 DUP5 PUSH2 0x7AA JUMP JUMPDEST PUSH2 0xA0B JUMP JUMPDEST PUSH2 0x7AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA42 DUP3 PUSH2 0xA15 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA54 DUP3 PUSH2 0xA37 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA64 DUP2 PUSH2 0xA49 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA7F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA5B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0xAE0 JUMPI PUSH2 0xADF PUSH2 0xAB4 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB02 JUMPI PUSH2 0xB01 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x20 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0xB1E JUMPI PUSH2 0xB1D PUSH2 0xABE JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3C JUMPI PUSH2 0xB3B PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB4A DUP5 DUP3 DUP6 ADD PUSH2 0x7F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5C DUP2 PUSH2 0x7CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB77 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB53 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xBB7 DUP3 PUSH2 0x808 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xBE9 JUMPI PUSH2 0xBE8 PUSH2 0xB7D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBFD DUP2 PUSH2 0x774 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC18 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xBF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xC2D DUP2 PUSH2 0x7DC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC49 JUMPI PUSH2 0xC48 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP5 DUP3 DUP6 ADD PUSH2 0xC1E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xC75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xB53 JUMP JUMPDEST PUSH2 0xC82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xBF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xC0 0xC1 PUSH28 0x2CBC5DB02001B8E5E67EF586328FBF7D3FE2FA08565B8CDB4FD8E1E7 PUSH5 0x736F6C6343 STOP ADDMOD SHR STOP CALLER ","sourceMap":"559:3288:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3288:557;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1698:686;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;741:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;349:38:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2567:659:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3288:557;3423:7;3442:24;3469:17;:29;3487:10;3469:29;;;;;;;;;;;:46;3499:15;3469:46;;;;;;;;;;;;;;;:55;3516:7;3469:55;;;;;;;;;;;;3442:82;;3559:1;3539:16;:21;3535:75;;3583:16;3576:23;;;;;3535:75;3639:17;:29;3657:10;3639:29;;;;;;;;;;;:46;3669:15;3639:46;;;;;;;;;;;;;;;:55;656:12;3639:55;;;;;;;;;;;;3620:74;;3728:1;3708:16;:21;3704:75;;3752:16;3745:23;;;;;3704:75;3837:1;3830:8;;;3288:557;;;;;;:::o;1698:686::-;1864:10;1876;872:38:29;890:7;899:10;872:17;:38::i;:::-;1903:9:43::1;1898:480;1918:17;;:24;;1914:1;:28;1898:480;;;1965:9;1960:349;1980:8;;1989:1;1980:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:18;;1976:1;:22;1960:349;;;2090:36;2020:17;:29:::0;2038:10:::1;2020:29;;;;;;;;;;;:51;2050:17;;2068:1;2050:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2020:51;;;;;;;;;;;;;;;:67;2072:8;;2081:1;2072:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2084:1;2072:14;;;;;;;:::i;:::-;;;;;;;;2020:67;;;;;;;;;;;:106;;;;2190:17;;2208:1;2190:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2149:74;;2174:8;;2183:1;2174:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2186:1;2174:14;;;;;;;:::i;:::-;;;;;;;;2162:10;2149:74;2212:10;2149:74;;;;;;:::i;:::-;;;;;;;;2273:3;;;;;1960:349;;;;2350:3;;;;;1898:480;;;;1698:686:::0;;;;;;;:::o;741:153::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;349:38:29:-;;;:::o;2567:659:43:-;2736:10;2748;872:38:29;890:7;899:10;872:17;:38::i;:::-;2775:9:43::1;2770:450;2790:17;;:24;;2786:1;:28;2770:450;;;2837:9;2832:319;2852:8;;2861:1;2852:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:18;;2848:1;:22;2832:319;;;2965:1;2895:17:::0;:29:::1;2913:10;2895:29;;;;;;;;;;;:51;2925:17;;2943:1;2925:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2895:51;;;;;;;;;;;;;;;:67;2947:8;;2956:1;2947:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;2959:1;2947:14;;;;;;;:::i;:::-;;;;;;;;2895:67;;;;;;;;;;;:71;;;;3032:17;;3050:1;3032:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2989:76;;3016:8;;3025:1;3016:11;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;3028:1;3016:14;;;;;;;:::i;:::-;;;;;;;;3004:10;2989:76;3054:10;2989:76;;;;;;:::i;:::-;;;;;;;;3115:3;;;;;2872;;;;:::i;:::-;;;2832:319;;;;3192:3;;;;;2770:450;;;;2567:659:::0;;;;;;;:::o;1466:218:29:-;1593:7;1557:43;;:8;:20;;;1578:10;1557:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;1553:125;;1647:7;1656:10;1623:44;;;;;;;;;;;;:::i;:::-;;;;;;;;1553:125;1466:218;;:::o;88:117:44:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:77::-;1234:7;1263:5;1252:16;;1197:77;;;:::o;1280:122::-;1353:24;1371:5;1353:24;:::i;:::-;1346:5;1343:35;1333:63;;1392:1;1389;1382:12;1333:63;1280:122;:::o;1408:139::-;1454:5;1492:6;1479:20;1470:29;;1508:33;1535:5;1508:33;:::i;:::-;1408:139;;;;:::o;1553:619::-;1630:6;1638;1646;1695:2;1683:9;1674:7;1670:23;1666:32;1663:119;;;1701:79;;:::i;:::-;1663:119;1821:1;1846:53;1891:7;1882:6;1871:9;1867:22;1846:53;:::i;:::-;1836:63;;1792:117;1948:2;1974:53;2019:7;2010:6;1999:9;1995:22;1974:53;:::i;:::-;1964:63;;1919:118;2076:2;2102:53;2147:7;2138:6;2127:9;2123:22;2102:53;:::i;:::-;2092:63;;2047:118;1553:619;;;;;:::o;2178:118::-;2265:24;2283:5;2265:24;:::i;:::-;2260:3;2253:37;2178:118;;:::o;2302:222::-;2395:4;2433:2;2422:9;2418:18;2410:26;;2446:71;2514:1;2503:9;2499:17;2490:6;2446:71;:::i;:::-;2302:222;;;;:::o;2530:117::-;2639:1;2636;2629:12;2653:117;2762:1;2759;2752:12;2776:117;2885:1;2882;2875:12;2916:568;2989:8;2999:6;3049:3;3042:4;3034:6;3030:17;3026:27;3016:122;;3057:79;;:::i;:::-;3016:122;3170:6;3157:20;3147:30;;3200:18;3192:6;3189:30;3186:117;;;3222:79;;:::i;:::-;3186:117;3336:4;3328:6;3324:17;3312:29;;3390:3;3382:4;3374:6;3370:17;3360:8;3356:32;3353:41;3350:128;;;3397:79;;:::i;:::-;3350:128;2916:568;;;;;:::o;3509:595::-;3609:8;3619:6;3669:3;3662:4;3654:6;3650:17;3646:27;3636:122;;3677:79;;:::i;:::-;3636:122;3790:6;3777:20;3767:30;;3820:18;3812:6;3809:30;3806:117;;;3842:79;;:::i;:::-;3806:117;3956:4;3948:6;3944:17;3932:29;;4010:3;4002:4;3994:6;3990:17;3980:8;3976:32;3973:41;3970:128;;;4017:79;;:::i;:::-;3970:128;3509:595;;;;;:::o;4110:1133::-;4268:6;4276;4284;4292;4300;4349:2;4337:9;4328:7;4324:23;4320:32;4317:119;;;4355:79;;:::i;:::-;4317:119;4475:1;4500:53;4545:7;4536:6;4525:9;4521:22;4500:53;:::i;:::-;4490:63;;4446:117;4630:2;4619:9;4615:18;4602:32;4661:18;4653:6;4650:30;4647:117;;;4683:79;;:::i;:::-;4647:117;4796:80;4868:7;4859:6;4848:9;4844:22;4796:80;:::i;:::-;4778:98;;;;4573:313;4953:2;4942:9;4938:18;4925:32;4984:18;4976:6;4973:30;4970:117;;;5006:79;;:::i;:::-;4970:117;5119:107;5218:7;5209:6;5198:9;5194:22;5119:107;:::i;:::-;5101:125;;;;4896:340;4110:1133;;;;;;;;:::o;5249:60::-;5277:3;5298:5;5291:12;;5249:60;;;:::o;5315:142::-;5365:9;5398:53;5416:34;5425:24;5443:5;5425:24;:::i;:::-;5416:34;:::i;:::-;5398:53;:::i;:::-;5385:66;;5315:142;;;:::o;5463:126::-;5513:9;5546:37;5577:5;5546:37;:::i;:::-;5533:50;;5463:126;;;:::o;5595:147::-;5666:9;5699:37;5730:5;5699:37;:::i;:::-;5686:50;;5595:147;;;:::o;5748:173::-;5856:58;5908:5;5856:58;:::i;:::-;5851:3;5844:71;5748:173;;:::o;5927:264::-;6041:4;6079:2;6068:9;6064:18;6056:26;;6092:92;6181:1;6170:9;6166:17;6157:6;6092:92;:::i;:::-;5927:264;;;;:::o;6197:180::-;6245:77;6242:1;6235:88;6342:4;6339:1;6332:15;6366:4;6363:1;6356:15;6383:117;6492:1;6489;6482:12;6506:117;6615:1;6612;6605:12;6629:117;6738:1;6735;6728:12;6752:740;6845:4;6851:6;6907:11;6894:25;7007:1;7001:4;6997:12;6986:8;6970:14;6966:29;6962:48;6942:18;6938:73;6928:168;;7015:79;;:::i;:::-;6928:168;7127:18;7117:8;7113:33;7105:41;;7179:4;7166:18;7156:28;;7207:18;7199:6;7196:30;7193:117;;;7229:79;;:::i;:::-;7193:117;7337:2;7331:4;7327:13;7319:21;;7394:4;7386:6;7382:17;7366:14;7362:38;7356:4;7352:49;7349:136;;;7404:79;;:::i;:::-;7349:136;6858:634;6752:740;;;;;:::o;7498:329::-;7557:6;7606:2;7594:9;7585:7;7581:23;7577:32;7574:119;;;7612:79;;:::i;:::-;7574:119;7732:1;7757:53;7802:7;7793:6;7782:9;7778:22;7757:53;:::i;:::-;7747:63;;7703:117;7498:329;;;;:::o;7833:118::-;7920:24;7938:5;7920:24;:::i;:::-;7915:3;7908:37;7833:118;;:::o;7957:222::-;8050:4;8088:2;8077:9;8073:18;8065:26;;8101:71;8169:1;8158:9;8154:17;8145:6;8101:71;:::i;:::-;7957:222;;;;:::o;8185:180::-;8233:77;8230:1;8223:88;8330:4;8327:1;8320:15;8354:4;8351:1;8344:15;8371:233;8410:3;8433:24;8451:5;8433:24;:::i;:::-;8424:33;;8479:66;8472:5;8469:77;8466:103;;8549:18;;:::i;:::-;8466:103;8596:1;8589:5;8585:13;8578:20;;8371:233;;;:::o;8610:118::-;8697:24;8715:5;8697:24;:::i;:::-;8692:3;8685:37;8610:118;;:::o;8734:222::-;8827:4;8865:2;8854:9;8850:18;8842:26;;8878:71;8946:1;8935:9;8931:17;8922:6;8878:71;:::i;:::-;8734:222;;;;:::o;8962:143::-;9019:5;9050:6;9044:13;9035:22;;9066:33;9093:5;9066:33;:::i;:::-;8962:143;;;;:::o;9111:351::-;9181:6;9230:2;9218:9;9209:7;9205:23;9201:32;9198:119;;;9236:79;;:::i;:::-;9198:119;9356:1;9381:64;9437:7;9428:6;9417:9;9413:22;9381:64;:::i;:::-;9371:74;;9327:128;9111:351;;;;:::o;9468:332::-;9589:4;9627:2;9616:9;9612:18;9604:26;;9640:71;9708:1;9697:9;9693:17;9684:6;9640:71;:::i;:::-;9721:72;9789:2;9778:9;9774:18;9765:6;9721:72;:::i;:::-;9468:332;;;;;:::o"},"methodIdentifiers":{"addAddresses(bytes32,address[],uint256[][])":"0f59a498","isVerified(bytes32,address,uint256)":"046852d0","registry()":"7b103999","removeAddresses(bytes32,address[],uint256[][])":"82ef31d9","verifiedContracts(bytes32,address,uint256)":"79fb477a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"}],\"name\":\"AccountIsNotDomainOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"AddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"}],\"name\":\"AddressRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"contractAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"chainIds\",\"type\":\"uint256[][]\"}],\"name\":\"addAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"isVerified\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract ISciRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"contractAddresses\",\"type\":\"address[]\"},{\"internalType\":\"uint256[][]\",\"name\":\"chainIds\",\"type\":\"uint256[][]\"}],\"name\":\"removeAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"domainHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"verifiedContracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"registerTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"security@sci.domains\",\"details\":\"This contract implements the Verifier interface. Domain owners can add or remove addresses that can interact within their domain. If the owner of the domain sets a contract address with MAX_INT as chain id then it assumes this contract is verified for all chains for that domain.\",\"errors\":{\"AccountIsNotDomainOwner(address,bytes32)\":[{\"details\":\"Thrown when the `account` is not the owner of the domainhash.\"}]},\"events\":{\"AddressAdded(bytes32,uint256,address,address)\":{\"details\":\"Emitted when the `msgSender` adds an address to a `domainHash` for a `chainId`.\"},\"AddressRemoved(bytes32,uint256,address,address)\":{\"details\":\"Emitted when the `msgSender` removes an address to a `domainHash` for a `chainId`.\"}},\"kind\":\"dev\",\"methods\":{\"addAddresses(bytes32,address[],uint256[][])\":{\"details\":\"Adds multiple addresses in multiple chains to the domain. Requirements: - The caller must be the owner of the domain.\"},\"isVerified(bytes32,address,uint256)\":{\"details\":\"See {IVerifier-isVerified}.\"},\"removeAddresses(bytes32,address[],uint256[][])\":{\"details\":\"Removes multiple addresses in multiple chains to the domain. Requirements: - The caller must be the owner of the domain.\"}},\"title\":\"PublicListVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Verifiers/PublicListVerifier.sol\":\"PublicListVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/DomainMangager/DomainManager.sol\":{\"keccak256\":\"0xa7255ab117f153218959a12397fadd772faad8ae921f280117846caac435fff1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://45ee7ac9a777795422a546a62d945913c3f2ff67bdb57367b899e0db65f58962\",\"dweb:/ipfs/QmVz5cJq7qbifkSUcG9bKw6Y5uYny22VJJuVbrfqrjGa81\"]},\"contracts/SciRegistry/ISciRegistry.sol\":{\"keccak256\":\"0xf76b31c10d4014020ef7cefc25d35650fa74259f1035cbc8de51c538b5523fb6\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0c1b1362c1d525414997b56964a58765d3d563d77fdb4864cef6d085c2cb4311\",\"dweb:/ipfs/QmVpPjaTUfiJJzjuXd79VSNAtU9qPspGuaRxRCwbvgXrPE\"]},\"contracts/Verifiers/IVerifier.sol\":{\"keccak256\":\"0x5c38560144b72888d9d05a21c7da62b295b0c37d29062c0557dead71d821e1e7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7e6ac159c7a470c2ee968719912d541ec41f4c42283133eb253d909476b3f85e\",\"dweb:/ipfs/QmUwLQdDaV2VAR6iSxcKLdUbYaPEJPjJjm86dhbrJRfX5F\"]},\"contracts/Verifiers/PublicListVerifier.sol\":{\"keccak256\":\"0x0b6aa28f3729baafc721de1c1ebe83ad74b6da735006b2fc42abe4adbd2e0f40\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://8c5189e799f6f600493ea0ef266ca6ba158b9aee3ba56908b5c609b59c2a635f\",\"dweb:/ipfs/QmUXfiLkSUTu9NHiWNA8eWhyuJ5Na49ARh6PjavcRdKivp\"]}},\"version\":1}","storageLayout":{"storage":[{"astId":8500,"contract":"contracts/Verifiers/PublicListVerifier.sol:PublicListVerifier","label":"verifiedContracts","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"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_bytes32,t_mapping(t_address,t_mapping(t_uint256,t_uint256)))":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => mapping(address => mapping(uint256 => uint256)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}}}}}}}